Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery如何将单击添加到ul_Javascript_Jquery - Fatal编程技术网

Javascript jQuery如何将单击添加到ul

Javascript jQuery如何将单击添加到ul,javascript,jquery,Javascript,Jquery,我想在用户使用jQuery单击时添加在li上选中的类。我已经写了下面的代码 HTML 已检查文档 已验证的文件 转发给物流部 物流部收到 。已选中{ 背景:绿色; } jQuery $(函数(){ $('li.row')。在('click',function()上{ $(this.addClass('checked'); }); }); 这是可行的,但我被告知这是一个糟糕的做法,并要求找到更好的方法来做到这一点。我执行以下操作,但它不起作用 $(函数(){ $('ul')。在('cli

我想在用户使用jQuery单击时添加在
li
上选中的类。我已经写了下面的代码

HTML

    已检查文档 已验证的文件 转发给物流部 物流部收到
。已选中{
背景:绿色;
}
jQuery

$(函数(){
$('li.row')。在('click',function()上{
$(this.addClass('checked');
});
});
这是可行的,但我被告知这是一个糟糕的做法,并要求找到更好的方法来做到这一点。我执行以下操作,但它不起作用

$(函数(){
$('ul')。在('click',函数(li)上{
$(li).addClass('checked');
});
});
这是错误的,因为你不能选择李点击你 如果您想通过单击添加类或删除类,您可以像这样使用(toggleClass

$('li').find(.row).on('click', function() {
      $(this).toggleClass('checked');
    });
$('li').find(.row).on('click', function() {
          $(this).addClass('checked');
        });
但是如果你想添加类,就这样写吧

$('li').find(.row).on('click', function() {
      $(this).toggleClass('checked');
    });
$('li').find(.row).on('click', function() {
          $(this).addClass('checked');
        });

使用此代码解决您的问题

$(“.row”)。单击(函数(){
$(this.toggleClass(“更改”)
})
.change{
背景颜色:绿色;
}

    已检查文档 已验证的文件 转发给物流部 物流部收到
这是一个不错的做法;)谁说这是坏习惯?谁说这是“坏习惯”,谁就需要解释为什么他们认为这是坏习惯。tl;博士,不是。第一次尝试是添加事件处理程序的正确方法。你的第二个不行。您可以在(“单击”、“li”、function(){$(this).上使用委托事件处理程序,它将是
$(“ul”)。但它们仅用于动态创建的元素。$(li).addClass('checked'));不起作用,因为li是可变的而不是实际的html li。如果您试图使其一次只能单击一个,那么您可以用4个单选按钮(带有css样式)替换您的
li
和js,而不需要任何js-因此这可能是他们所指的。