1

我在 jQuery 1.4 中的实时绑定遇到了一个非常大的问题。我想将悬停事件绑定到 div.message 元素并淡入控件。默认情况下它们是隐藏的。使用时这很容易.hover(),但不会绑定通过 ajax 添加的新项目。我试过.live()没有成功。每次光标移动到消息的各种内容上时,它都会触发mouseoverand事件。mouseout正如您可以想象的那样,这会使控件闪烁。当鼠标悬停在消息上时,我希望控件淡入。但是我需要在加载新消息时将效果绑定到新消息。我建议在加载消息时绑定悬停事件。我更喜欢像 live 这样的解决方案,但工作方式与 hover 完全一样。

<div id="messages">
    <div class="message">
        <div class="controls">
            <a href="dosomthing">
                do somthing
            </a>
            <a href="dosomthing">
                do somthing
            </a>
        </div>
        <p>blah blah blah</p>
    </div>
    <div class="message">
        <div class="controls">
        </div>
        <p>blah blah blah</p>
    </div>
    <div class="message">
        <div class="controls">
            <a href="dosomthing">
                do somthing
            </a>
            <a href="dosomthing">
                do somthing
            </a>
        </div>
        <p>blah blah blah</p>
    </div>
</div>
4

1 回答 1

1

要解决此问题,您可以使用1.4.2delegate版中的添加,如下所示:

$("#container").delegate("div", "hover", function(){
    // your code....
});

。代表()

描述:基于一组特定的根元素,将处理程序附加到与选择器匹配的所有元素的一个或多个事件,现在或将来。

于 2010-08-01T07:51:26.703 回答