当$ .html()用于填充内容时,JQuery会多次触发警报

时间:2016-04-02 17:05:51

标签: jquery

我有这个小问题,我无法解决这个问题。

我有一个点击事件,当点击一个元素时会触发:

$(document).on("click", "#PersonalVault", function (e) {
    alert("hit");
    $("#Content").html("...other html with script...");
});

一些示例html数据插入#Content:

<script>
    $(document).ready(function () {
        alert("content hit");
    });
</script>
<div>
    ...more html...
</div>

警报(&#34;点击&#34;)只触发一次,这很好,但警告(&#34;内容点击&#34;)在我再次点击它后会多次触发。

所以,第一个#PersonalVault点击,它将html添加到#Content,一切正常。 再次单击#PersonalVault,将两次发出警报(&#34;内容命中&#34;)。 第三次点击...... 3次......依此类推。但警报(&#34;点击&#34;)将继续只发射一次。

知道如何解决这个问题吗? 让我知道是否仍然不清楚,以便我可以详细说明一点。 任何帮助将非常感谢!

1 个答案:

答案 0 :(得分:1)

所以我发现了我的问题。问题是正在插入的#Content的HTML包含一个事件:

$(document).on('click', '#ViewItem', function () {
    alert("item viewed");
});

看起来如果我使用它,jquery也会被添加到主文档中。

修复只是将此事件更改为:

$('#ViewItem').click(function () {
    alert("item viewed");
});

感谢所有人在评论中的意见!