4

我希望在单击append类中的链接 html 输入复选框后,在单击输入复选框后获得警报is checked

我尝试了以下代码,但对我不起作用:

演示:http: //jsfiddle.net/HsveE/

HTML

<a href="#" id="ho">Click Me</a>
<div class="hi"></div>

jQuery

$('#ho').on('click', function(e){
    e.preventDefault();
    $('.hi').append('<input type="checkbox" id="isAgeSelected"/>');
})
$(".hi input[type=checkbox]").on('click',function () {
    alert('is checked')
})

如何解决?

4

3 回答 3

2

您需要委托,因为您的元素在绑定时不存在 - 或在元素确实存在后绑定

$(".hi").on('click',"input[type=checkbox]",function () {
    alert('is checked')
})

http://jsfiddle.net/5dYwG/

这样做会使用 class=hi 将事件处理程序绑定到您的元素/元素 - 因为它在 dom 准备好时存在并且是您将复选框附加到的元素。然后它会在事件从您的复选框中冒出并处理它们时侦听该事件。

另一件事是始终将绑定包装在 document.ready 函数中,以便在尝试绑定事件处理程序之前等待加载您的 dom。

$(function(){
   // your binding code here
})

编辑

$(".hi").on('click',"input[type=checkbox]",function () {
  if(this.checked){
    alert('is checked')
  }
})

小提琴

于 2013-01-24T21:15:10.073 回答
0

用这个...

$(".hi").on('click',"input[type=checkbox]",function () {
    if($(this).is(':checked')){
        alert('is checked');
    }
})

问候。

于 2013-01-24T21:28:18.253 回答
0

这是解决方案。

$('#ho').on('click', function(e){
  e.preventDefault();
  $('.hi').append('<input type="checkbox" id="isAgeSelected"/>');
});
$(".hi").on('click', '#isAgeSelected', function () {
  alert('is checked = ' + this.checked)
});

如果您想尝试http://jsfiddle.net/greenrobo/3Rugn/ ,也可以拨弄一下

于 2013-01-24T22:09:43.880 回答