jquery实时执行多次

时间:2011-11-17 19:03:39

标签: jquery

我有以下HTML:

<div id="Content">
  <div class="MyDiv">...</div>
  <div class="MyDiv">...</div>
</div>

由于ajax调用,MyDiv元素被删除并添加了几次。我使用一个使用.html()函数替换HTML的函数。

当页面加载时,我执行以下功能:

function DynamicHandlers() {

     $('#Content .MyDiv').live({
        click: function () { .... },
        mouseleave: function () { ... }
    });

问题是click和mouseleave处理程序在我更改HTML时执行了很多次。我最初的处理程序与HTML的创建有关,每次HTML更新时我都会绑定事件。我认为通过将处理程序移动到使用.live()的函数,我只需要运行一次然后处理程序就会设置好。他们是谁;唯一的问题是它们被多次执行。

我需要做出哪些改变?

感谢。

2 个答案:

答案 0 :(得分:0)

将为DOM中与$('#Content .MyDiv')选择器匹配的每个元素调用您的处理程序。我假设在事件被触发时,页面上有多个匹配的元素。

答案 1 :(得分:0)

解决此问题的最简单方法是在.live()之前调用.die()。

这当然不是正确的事情,但它会解决它。