Javascript 即使I';我用的是:不是选择器

Javascript 即使I';我用的是:不是选择器,javascript,jquery,css,Javascript,Jquery,Css,$('.用户卡:未(.loaded')。单击(函数(e){ $(e.target).addClass('loaded'); $(e.target).text('loaded!'); log('现在已加载'); }); $('.loaded')。单击(函数(){ 警报('已加载!') }); 未加载 未加载 通过从父级继承属性,这两个按钮都是“未加载”的,请改用“.hasClass”每次单击后都会触发单击事件,因为每次单击后都没有重新分配单击事件。关于如何解决这个问题,您有多种选择。我在这里的一

$('.用户卡:未(.loaded')。单击(函数(e){
$(e.target).addClass('loaded');
$(e.target).text('loaded!');
log('现在已加载');
});
$('.loaded')。单击(函数(){
警报('已加载!')
});

未加载
未加载

通过从父级继承属性,这两个按钮都是“未加载”的,请改用“.hasClass”

每次单击后都会触发单击事件,因为每次单击后都没有重新分配单击事件。关于如何解决这个问题,您有多种选择。我在这里的一种方法是在单击时查看“加载的”类。如果没有“加载”类,则运行代码。否则会触发警报,让您知道元素已加载

$('.用户卡:未(.loaded')。单击(函数(e){
if(!$(e.target).hasClass('loaded')){
$(e.target).addClass('loaded');
$(e.target).text('loaded!');
log('现在已加载');
}否则{
警报('已加载!');
}
});
$('.loaded')。单击(函数(){
警报('已加载!');
});

未加载
未加载
加载

因为选择器在元素具有类之前添加事件。它不会继续检查。在分配事件侦听器时,两个按钮都“未加载”。要实现您想要的功能,您需要在事件侦听器函数中使用类似于
.hasClass('loaded')
的功能:停止从评论中获取建议并将其作为您自己的答案发布。