1

我是 jquery 的新手。我有一个复选框

<label id="2p">
    <input type="radio" name="due" class="due"  value="2p" checked="yes" />
    <span class="testoCheckbox">2p</span>
</label>

动态附加到 div。在加载、更改或单击事件后附加不会被触发。我知道捕获单击复选框的解决方案必须在“on”功能中,但我无法获得正确的语法。有人能帮助我吗?

4

4 回答 4

2

您可以使用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

});
于 2012-09-26T12:42:42.320 回答
0

尝试 :

$('body').on('click', '.due', function() {
  // do something here
});

参见:jQuery.on()

于 2012-09-26T12:41:04.180 回答
-1

据我所知,您可以动态地将 checkbvox 附加到onclick=""事件中,它应该可以正常工作。如果你想用 jQuery 来做,你应该定义 id(比如“myCheckbox”)并做

$('#myCheckbox').click(function(){
  //your code here.
});

或者,如果您想为所有复选框附加相同的操作,请使用不同的选择器,即:.due
顺便说一下,.click(handler)这只是根据文档的快捷方式: http.on("click", handler) ://api.jquery.com/click/

于 2012-09-26T12:36:41.767 回答
-2

当您动态加载复选框时,jQuery 无法在页面加载时将事件绑定在其上,使用 .live(在 >= jQuery 1.7 中由 .on 替换)您可以实现以下目标:

“为现在和将来匹配当前选择器的所有元素附加一个事件处理程序。”

http://api.jquery.com/live/

回答:

$(body).on("click", ".due", function() {
  // Handler
});
于 2012-09-26T12:36:09.593 回答