jquery mouseover(fn()) mouseout(fn()) hover(fn(),fn())

    技术2022-05-20  41

    今天用了以下两种方法,都能运行:

    $(".box").mouseover(function(){$(this).addClass("hover"); $("div").html("选择的是"+$(this).html());}); $(".box").mouseout(function(){$(this).removeClass("hover"); $("div").html("");}); -------------------------------------------------- $(".box").hover( function () { $(this).addClass("hover"); $("div").html("选择的是"+$(this).html()); }, function () { $(this).removeClass("hover"); $("div").html(""); } );

    但是问题出现了,后来通过事件添加相同class的node,但是却没有继承对应的hover 或者mouseover和mouseout事件,太不爽了,还要再调用一次hover(),这样一来,增加了代码的长度。。。

     

    希望哪位有好的方法,分享一下,谢谢了!

    大家可以试试这种方法:

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

    1楼  shanshan209 2011-08-08 12:09发表 [回复] [引用] [举报] [删除] 用live() 方法。jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。 这个方法是基本是的 .bind() 方法的一个变体。使用 .bind() 时,选择器匹配的元素会附加一个事件处理函数,而以后再添加的元素则不会有。

    .live() 方法能对一个还没有添加进DOM的元素有效,是由于使用了事件委托:绑定在祖先元素上的事件处理函数可以对在后代上触发的事件作出回应。传递给 .live() 的事件处理函数不会绑定在元素上,而是把他作为一个特殊的事件处理函数,绑定在 DOM 树的根节点上。

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


    最新回复(0)