还有就是下面的用法,有些不太理解!! var hs=$("<div></div>"); $("body").append(hs); $(".ws").on({ "mousemove":function(ev){ if(!$(this).data('fadeOut')){//这个是不是检测这个对象是否有fadeOut对象(这里所有添加的都要是对象吗) $(this).data('fadeOut',true);//没有就添加一个对象 hs.show(400).delay(1200).fadeOut();//按道理我那个是个mousemove事件他移动的话会不断执行下面的hs.show(400).delay(1200).fadeOut();可为什么上面只是做个判断,设置个属性为true,这个hs.show(400).delay(1200).fadeOut()就可以只会执行一次而不会随着不断移动的move事件去执行呢,这个data到底有什么作用?? } }, "mouseout":function(){ hs.finish(); $(this).data('fadeOut',false); } );
$.data() :向被选元素附加数据,或者从被选元素获取数据。
$(this).data('fadeOut'):是获取你选中元素的'fadeOut'的属性值,而不是检测这个对象是否有fadeOut对象
因为第一次这个属性值为false,所以进去了,进去了之后你给人家设置true,下次来的时候,if(!$(this).data('fadeOut'))结果为false所以就进不去了。