给VML增加事件

VML 和 HTML 的紧密结合,使的给 VML 增加事件变得很容易.所有的 HTML 里面的事件都可以应用到 VML 中间来!下面的例子是演示:当鼠标移动到圆的时候,圆就跟着鼠标移动了,当鼠标点击后,圆停止移动。

<v:oval id="circle" style="position:relative;width:100;height:80;" onmouseover="move()" fillcolor=red />
<script>
var canmove=false;
function move()
{
 circle.style.position="absolute";
 canmove=true;
 document.onmousemove=new Function("if(canmove){circle.style.posLeft=event.x;circle.style.posTop=event.y;}");
}
document.onclick=new Function("canmove=false");
</script>

不知道你有没有注意,VML的事件区域是严格按照本身的形状的,并不是像图片那样,都是矩形。顺便介绍一下 Function 对象,使用Function 对象,如果函数的内容比较少,而且调用就一次,就可以使用 Function 对象了,使用方法就是用 new 创建一个 Function 对象,参数就是 函数的内容。控制事件的比较好的办法是使用一个全局变量,一个事件的执行依赖一个全局变量,而另一个事件可以设置这个全局变量,这样一来,就可以让事件来控制事件了。

(0)

相关推荐

  • 给VML增加事件

    VML 和 HTML 的紧密结合,使的给 VML 增加事件变得很容易.所有的 HTML 里面的事件都可以应用到 VML 中间来!下面的例子是演示:当鼠标移动到圆的时候,圆就跟着鼠标移动了,当鼠标点击后,圆停止移动. <v:oval id="circle" style="position:relative;width:100;height:80;" onmouseover="move()" fillcolor=red /><scr

  • JS实现为动态添加的元素增加事件功能示例【基于事件委托】

    本文实例讲述了JS实现为动态添加的元素增加事件功能.分享给大家供大家参考,具体如下: 我们在日常开发中有时会通过js创建一些元素,但是如果使用原始的for循环给创建的节点添加事件的方法往往行不通: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net js动态添加事件</title>

  • Extjs学习笔记之八 继承和事件基础

    这里接口的意思是Observable实际上起了一个抽象类的作用,Extjs中有大量的组件都是继承自这个类的.这个类提供了一些基本的方法比如addEvents,addlistener,fireEvent等等. 本文暂时不介绍如何使用extjs的组件响应事件,而是介绍Extjs的事件的一些实现原理.整个Extjs框架都是以一种面向对象的方式开发的,所以理解Javascript中的继承也很重要.我前面的一篇文章 补点基础:Javascript中的类和闭包 也是为这篇做准备.另外,博客园内还有一个写的很

  • 有关DOM元素与事件的3个谜题

    一.背景知识介绍 通常为DOM元素增加事件有以下几种办法: 1,硬编码形式 2,事件监听 3,JS框架提供的事件绑定 1,硬编码形式,采用的是原始事件(Original Event)的形式. 代码类似如下: 复制代码 代码如下: <element onclick='func();' /> document.getElementById('element_id').eventName = func(); 2,事件监听机制,这种形式采用的做法是根据DOM事件机制,分为DOM标准事件模型addEve

  • .Net WInform开发笔记(五)关于事件Event

    我前面几篇博客中提到过.net中的事件与Windows事件的区别,本文讨论的是前者,也就是我们代码中经常用到的Event.Event很常见,Button控件的Click.KeyPress等等,PictureBox控件的Paint等等都属于本文讨论范畴,本文会例举出有关"事件编程"的几种方法,还会提及由"事件编程"引起的MemoryLeak(跟"内存泄露"差不多),以及由"事件编程"引起的一些异常. 引子: .net中事件最常用

  • jquery事件与函数的使用介绍

    1.绑定事件 方法1: 使用这个方法可以在页面加载时为元素增加事件 复制代码 代码如下: $("#myElement").click(function(){ alert($(this).text()); }) 方法2: 和1一样,还可以在页面加载之后为元素增加事件,如创建新的DOM元素 复制代码 代码如下: $("#myElement").bing('click',function(){ alert($(this).text()); }) 2.函数声明和命名函数表达

  • JS工作中的小贴士之”闭包“与事件委托的”阻止冒泡“

    说下闭包的由来 function a() { var i = 0; function b() { console.log(i); } return b; } var c = a(); c(); 一般来说,当一个函数内部匿名函数用到了自己的变量,并且这个匿名函数被返回了,这就建立了一个闭包,比如上面的代码 这个时候,就算a调用结束被销毁,i也会存在不会消失当a定义时,js解释器会将函数a的作用域链设置为定义a时所在环境当执行a时,a会进入相应的执行环境,执行环境创建后才会有作用域scope属性,然

  • jquery事件与绑定事件

    1.首先,我们来看一下经常使用的添加事件的方式: <input type="button" id="btn" value="click me!" onclick="shao();" /> <script type="text/javascript"> function shao() { alert("msg is showing!"); } </script

  • JQuery实现表格动态增加行并对新行添加事件

    实现功能: 通常在编辑表格时表格的行数是不确定的,如果一次增加太多行可能导致页面内容太多,反应变慢:通过此程序实现表格动态增加行,一直保持最下面有多个空白行. 效果: 一:原始页面 二:表1增加新行并绑定timepicker 三:表2自动增加行,新行绑定timepicker HTML源码: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-

  • Android中button的onClick事件几种方法

    Android中button的onClick事件几种方法 利用三种方法,学习button的监听事件. 方法一源码如下: package com.example.androidtest; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.Menu; import android.widget.Button; import android.

随机推荐