我是 jquery 的新手。我有一个复选框
<label id="2p">
<input type="radio" name="due" class="due" value="2p" checked="yes" />
<span class="testoCheckbox">2p</span>
</label>
动态附加到 div。在加载、更改或单击事件后附加不会被触发。我知道捕获单击复选框的解决方案必须在“on”功能中,但我无法获得正确的语法。有人能帮助我吗?
您可以使用on()
这种方式检查动态添加的元素上的事件:
$(document).on('change', '.due', function(event){
// do your stuff
});
每当change
在文档中触发事件时,如果它与.due
选择器匹配,就会触发回调。
您可能希望缩小选择范围以获得更好的性能:
$('#someDiv').on('change', '.due', function(event){
// do your stuff
});
如果你想定位包含在的所有复选框#someDiv
:
$('#someDiv').on('change', 'input[type="checkbox"]', function(event){
// do your stuff
});
据我所知,您可以动态地将 checkbvox 附加到onclick=""
事件中,它应该可以正常工作。如果你想用 jQuery 来做,你应该定义 id(比如“myCheckbox”)并做
$('#myCheckbox').click(function(){
//your code here.
});
或者,如果您想为所有复选框附加相同的操作,请使用不同的选择器,即:.due
顺便说一下,.click(handler)
这只是根据文档的快捷方式: http.on("click", handler)
://api.jquery.com/click/
当您动态加载复选框时,jQuery 无法在页面加载时将事件绑定在其上,使用 .live(在 >= jQuery 1.7 中由 .on 替换)您可以实现以下目标:
“为现在和将来匹配当前选择器的所有元素附加一个事件处理程序。”
回答:
$(body).on("click", ".due", function() {
// Handler
});