您当前的位置:首页 > 互联网教程

JS关于removeClassName循环替换使用失败求助

发布时间:2025-05-24 16:25:38    发布人:远客网络

JS关于removeClassName循环替换使用失败求助

一、JS关于removeClassName循环替换使用失败求助

html部分 id必须是唯一的,你的o1和 o2分别用了三次,应该为一次

js部分,这里查的是id,他只会找这个id出现的第一个元素,所以只有一个

1.改为document.getElementsByClassName("et-slide");

2.方框部分要写在循环内调用,不然也是只调用一次

3. removeClassName这个方法名是jquery的内置方法,养成一个良好的习惯,不要起这种和常用框架方法冲突的方法名

二、js移除onmousemove属性

event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。

event对象只在事件发生的过程中才有效。

event的某些属性只对特定的事件有意义。比如,fromElement和 toElement属性只对 onmouseover和 onmouseout事件有意义。

下面的例子检查鼠标是否在链接上单击,并且,如果shift键被按下,就取消链接的跳转。

<HEAD><TITLE>Cancels Links</TITLE>

<SCRIPT LANGUAGE="JScript">

if(window.event.srcElement.tagName=="A"&& window.event.shiftKey)

window.event.returnValue= false;

<BODYοnclick="cancelLink()">

下面的例子在状态栏上显示鼠标的当前位置。

<BODYοnmοusemοve="window.status='X='+ window.event.x+' Y='+ window.event.y">

altKey, button, cancelBubble, clientX, clientY, ctrlKey, fromElement, keyCode, offsetX, offsetY, propertyName, returnValue, screenX, screenY, shiftKey, srcElement, srcFilter, toElement, type, x, y

--------------------------------------------------------------------------------

当alt键按下时,值为 TRUE,否则为 FALSE。只读。

这个属性仅用于onmousedown, onmouseup,和 onmousemove事件。对其他事件,不管鼠标状态如何,都返回 0(比如onclick)。

检测是否接受上层元素的事件的控制。

event.cancelBubble[= cancelBubble]

FALSE允许被上层元素的事件控制。这是默认值。

三、node.js eventemitter.on 不手动remove 会被回收吗

1、Node.js所有的异步 I/O操作在完成时都会发送一个事件到事件队列。

2、Node.js里面的许多对象都会分发事件:一个net.Server对象会在每次有新连接时分发一个事件,一个fs.readStream对象会在文件被打开的时候发出一个事件。所有这些产生事件的对象都是 events.EventEmitter的实例。

3、events模块只提供了一个对象: events.EventEmitter。EventEmitter的核心就是事件触发与事件监听器功能的封装。

4、你可以通过require("events");来访问该模块。

5、//引入 events模块var events= require('events');//创建 eventEmitter对象var eventEmitter= new events.EventEmitter();

6、EventEmitter对象如果在实例化时发生错误,会触发 error事件。当添加新的监听器时,newListener事件会触发,当监听器被移除时,removeListener事件被触发。

7、下面我们用一个简单的例子说明 EventEmitter的用法:

8、//event.js文件var EventEmitter= require('events').EventEmitter; var event= new EventEmitter(); event.on('some_event', function(){ console.log('some_event事件触发');}); setTimeout(function(){ event.emit('some_event');}, 1000);

9、运行这段代码,1秒后控制台输出了'some_event事件触发'。其原理是 event对象注册了事件 some_event的一个监听器,然后我们通过 setTimeout在 1000毫秒以后向 event对象发送事件 some_event,此时会调用some_event的监听器。

10、EventEmitter的每个事件由一个事件名和若干个参数组成,事件名是一个字符串,通常表达一定的语义。对于每个事件,EventEmitter支持若干个事件监听器。

11、当事件触发时,注册到这个事件的事件监听器被依次调用,事件参数作为回调函数参数传递。

12、让我们以下面的例子解释这个过程:

13、//event.js文件var events= require('events'); var emitter= new events.EventEmitter(); emitter.on('someEvent', function(arg1, arg2){ console.log('listener1', arg1, arg2);}); emitter.on('someEvent', function(arg1, arg2){ console.log('listener2', arg1, arg2);}); emitter.emit('someEvent','arg1参数','arg2参数');

14、执行以上代码,运行的结果如下:

15、listener1 arg1参数 arg2参数listener2 arg1参数 arg2参数

16、以上例子中,emitter为事件 someEvent注册了两个事件监听器,然后触发了 someEvent事件。

17、运行结果中可以看到两个事件监听器回调函数被先后调用。这就是EventEmitter最简单的用法。

18、EventEmitter提供了多个属性,如on和emit。on函数用于绑定事件函数,emit属性用于触发一个事件。接下来我们来具体看下 EventEmitter的属性介绍。

19、1 addListener(event, listener)

20、为指定事件添加一个监听器到监听器数组的尾部。

21、为指定事件注册一个监听器,接受一个字符串 event和一个回调函数。server.on('connection', function(stream){

22、console.log('someone connected!');});

23、为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立刻解除该监听器。server.once('connection', function(stream){

24、console.log('Ah, we have our first user!');});

25、4 removeListener(event, listener)

26、移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。

27、它接受两个参数,第一个是事件名称,第二个是回调函数名称。

28、var callback= function(stream){

29、console.log('someone connected!');};server.on('connection', callback);//...server.removeListener('connection', callback);

30、移除所有事件的所有监听器,如果指定事件,则移除指定事件的所有监听器。

31、默认情况下, EventEmitters如果你添加的监听器超过 10个就会输出警告信息。 setMaxListeners函数用于提高监听器的默认限制的数量。

32、8 emit(event, [arg1], [arg2], [...])

33、按参数的顺序执行每个监听器,如果事件有注册监听返回 true,否则返回 false。

34、1 listenerCount(emitter, event)

35、该事件在添加新监听器时被触发。

36、从指定监听器数组中删除一个监听器。需要注意的是,此操作将会改变处于被删监听器之后的那些监听器的索引。

37、以下实例通过 connection(连接)事件演示了 EventEmitter类的应用。

38、var events= require('events');var eventEmitter= new events.EventEmitter();//监听器#1var listener1= function listener1(){

39、console.log('监听器 listener1执行。');}//监听器#2var listener2= function listener2(){

40、console.log('监听器 listener2执行。');}//绑定 connection事件,处理函数为 listener1 eventEmitter.addListener('connection', listener1);//绑定 connection事件,处理函数为 listener2eventEmitter.on('connection', listener2);var eventListeners= require('events').EventEmitter.listenerCount(eventEmitter,'connection');console.log(eventListeners+"个监听器监听连接事件。");//处理 connection事件 eventEmitter.emit('connection');//移除监绑定的 listener1函数eventEmitter.removeListener('connection', listener1);console.log("listener1不再受监听。");//触发连接事件eventEmitter.emit('connection');eventListeners= require('events').EventEmitter.listenerCount(eventEmitter,'connection');console.log(eventListeners+"个监听器监听连接事件。");console.log("程序执行完毕。");

41、$ node main.js2个监听器监听连接事件。监听器 listener1执行。监听器 listener2执行。listener1不再受监听。监听器 listener2执行。1个监听器监听连接事件。程序执行完毕。

42、EventEmitter定义了一个特殊的事件 error,它包含了错误的语义,我们在遇到异常的时候通常会触发 error事件。

43、当 error被触发时,EventEmitter规定如果没有响应的监听器,Node.js会把它当作异常,退出程序并输出错误信息。

44、我们一般要为会触发 error事件的对象设置监听器,避免遇到错误后整个程序崩溃。例如:

45、var events= require('events'); var emitter= new events.EventEmitter(); emitter.emit('error');

46、node.js:201 throw e;// process.nextTick error, or'error' event on first tick ^ Error: Uncaught, unspecified'error' event. at EventEmitter.emit(events.js:50:15) at Object.<anonymous>(/home/byvoid/error.js:5:9) at Module._compile(module.js:441:26) at Object..js(module.js:459:10) at Module.load(module.js:348:31) at Function._load(module.js:308:12) at Array.0(module.js:479:10) at EventEmitter._tickCallback(node.js:192:40)

47、大多数时候我们不会直接使用 EventEmitter,而是在对象中继承它。包括 fs、net、 http在内的,只要是支持事件响应的核心模块都是 EventEmitter的子类。

48、为什么要这样做呢?原因有两点:

49、首先,具有某个实体功能的对象实现事件符合语义,事件的监听和发生应该是一个对象的方法。

50、其次 JavaScript的对象机制是基于原型的,支持部分多重继承,继承 EventEmitter不会打乱对象原有的继承关系。