慕粉3686312
2016-09-06 00:26
<h4>测试三</h4> <div class="right"> <div class="aaron2"> <p>鼠标移动:不同函数传递数据</p> <a>进入元素内部,mouseover事件触发次数:</a> </div> </div> <br/> <script type="text/javascript"> var n = 0; //不同函数传递数据 function data(e) { $(".right a").html('mouseover事件触发次数:' + (++n) + '<br/> 传入数据为 :'+ e.data) } function a() { $(".right p:first").mouseover('data = 慕课网', data) } a(); </script>
函数function data(e)以及函数function a()之间什么关系,谁先执行$(".right a")这代表在class=right下的a标签才能触发函数吗?
这个++n是怎么实现的,怎么把function(a)里面的mouseove跟fun(e)联系起来的,我看只能data有联系啊
可能写成下面的方式更容易看懂。
function a() { $(".right p:first").mouseover('data = 慕课网', function data(e) { $(".right a").html('mouseover事件触发次数:' + (++n) + '<br/> 传入数据为 :'+ e.data) }) }
jQueryObject.mouseover( [ [ data ,] handler ] )接受两个参数,
data 可选/任意 类型触发事件时,需要通过event.data传递给事件处理函数的任意数据
handler 可选/Function类型 指定的事件处理函数。
相当于在a()函数的点击事件中调用了data()函数。
而data()函数里面的第一个参数e.data的值就等于 'data = 慕课网'。
注:这里的e是window.event对象,一般在作为函数的第一个参数传入。
因为a();所以先调用function a() 将data=“慕课网” 赋值给data, 这时就相当于有了 data(data="慕课网"),所以执行data(e)方法 最后再根据e修改.right a里面的内容,这个不是靠a标签触发的。
jQuery基础(三)—事件篇
89997 学习 · 625 问题
相似问题