版权声明:本文为博主原创文章,需要转载尽管转载。 https://blog.csdn.net/z5976749/article/details/81981928
//$('div.divB label').on('click', function () {
// debugger
// if ( $(this).attr('style').indexOf("red") > -1) //如果已经选过则取消选中状态
// $(this).css('color', 'black');
// else {//没选过根据是否能多选判断
// if (!questionObj.IsMulti) //0是false 1是true 如果是单选则先所有label为恢复
// $('label').css('color', 'black'); //如果是单选的情况下所有标签都恢复原来颜色
// $(this).css('color', 'red');
// }
//})
//动态绑定事件 参考:https://www.cnblogs.com/timelesszhuang/p/4949167.html 用上面的click html()重写后事件不起作用
$("body").undelegate();
$("body").delegate("div.divB label", "click", function () {
debugger
if ($(this).attr('style').indexOf("red") > -1) //如果已经选过则取消选中状态
$(this).css('color', 'black');
else {//没选过根据是否能多选判断
if (!questionObj.IsMulti) //0是false 1是true 如果是单选则先所有label为恢复
$('label').css('color', 'black'); //如果是单选的情况下所有标签都恢复原来颜色
$(this).css('color', 'red');
}
});
事件不要加在可能被移除或替换的标签上 加在body上(我试着加在控件的父级上失败了)
原因:无论是利用getElementsByTagName还是jquery的选择器,当需要的内容还没有被插入时,选择器只会选择页面中已经存在的元素,所以事先没有存在元素是绑定不了事件的。