嗨,朋友,我想当用户单击按钮时,此代码<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/