嗨,朋友,我想当用户单击按钮时,此代码<div class="row><input type="radio" name="radio"></div>"将附加到body

现在的问题是,名为.row的div是整个可单击的控件,当用户单击div时,它的子元素<input type="radio" name="radio">应该为trigger clicked。但是我的代码无法按照我的要求工作,它给我错误信息,该错误信息显示在控制台中,显示为too much recursion。我不知道这是什么。

您可以在这里http://jsfiddle.net/L9sezwge/检查我的代码,也可以在下面检查

脚本

$('button').click(function(){
$('body').append('<div class="row"><input type="radio" name="radio">dd</div>')
})
$(document).on('click','.row',function(e){

$('.row').removeClass('gray')
$(this).addClass('gray')
$(this).find('input').trigger('click')

})


的HTML

<button>Click</button>


的CSS

.row{padding:10px 40px; cursor:pointer;}
.row:hover{color:red;}
.gray{background:gray; color:red;}

最佳答案

最干净的方式

最干净的方法是使用.prop('checked',true);而不是.trigger('click')。这样,就不会发生传播,因为不会触发任何UI事件。

$('button').click(function(){
     $('body').append('<div class="row"><input type="radio" name="radio">dd</div>');
});
$(document).on('click','.row',function(e){

     $('.row').removeClass('gray');
     $(this).addClass('gray');
     $(this).children('input').prop('checked',true); //Changed find() to children as well.

});


查看此demo on JSFiddle

关于jquery - 单击div触发 radio ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26402557/

10-12 12:53
查看更多