我申请:
$(".newContentLink").click(function() {
$("#test").append("1");
});
Run Code Online (Sandbox Code Playgroud)
在这:
<span id="contents">
<input class="newContentLink" type="submit" style="width: 100%;" value="CREATE A NEW CONTENT"/>
<span id="content1" class="content study">
</span>
<input class="newContentLink" type="submit" style="width: 100%;" value="CREATE A NEW CONTENT"/>
<span id="content3" class="content study">
</span>
<input class="newContentLink" type="submit" style="width: 100%;" value="CREATE A NEW CONTENT"/>
<span id="content4" class="content category">
</span>
<input class="newContentLink" type="submit" style="width: 100%;" value="CREATE A NEW CONTENT"/>
</span>
Run Code Online (Sandbox Code Playgroud)
为什么当我点击它添加111的前2个按钮时,下一个按钮增加11,最后一个按钮增加1?
cha*_*aos 20
无法复制.我怀疑你是在歪曲 - 过分简化 - 大多数情况下 - 你的情况.确切地说,我相信你是动态地添加这些输入,并且$(".newContentLink").click(...)每次调用- 这自然会继续将点击处理程序的其他副本应用于.newContentLink页面中的每个.
因此,您创建的最新输入具有单击处理程序的一个副本并附加一个1.最近的第二个有两个副本并附加11.第三个有三个和附加111等.
要防止这种情况,请将click处理程序应用于新创建的DOM元素,而不是$(".newContentLink")(通常表示每个 元素.newContentLink).
小智 7
或者您可以在每次添加新元素时取消绑定click事件
$('.newContentLink').unbind('click');
$(".newContentLink").click(function() {
$("#test").append("1");
});
Run Code Online (Sandbox Code Playgroud)
正如混乱所说,你click()每次添加一个时都可能会打电话,而且它们正在累积.
如果您要动态地将这些项目添加到文档中,并且需要确保将此功能添加到您添加的每个项目中,那么如何使用live?
$('#contents').on('click', '.newContentLink', function() {
$("#test").append("1");
});
Run Code Online (Sandbox Code Playgroud)
这将确保将规则动态应用于文档中的任何限定类.
| 归档时间: |
|
| 查看次数: |
10645 次 |
| 最近记录: |