Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/85.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 $(这)指的是$(窗口),而不是内部单击的元素。click()方法_Javascript_Jquery - Fatal编程技术网

Javascript $(这)指的是$(窗口),而不是内部单击的元素。click()方法

Javascript $(这)指的是$(窗口),而不是内部单击的元素。click()方法,javascript,jquery,Javascript,Jquery,我试图访问无序列表中的子元素,但没有得到预期的值 以下是我的HTML代码: s M T W T F s JS代码: $(文档).ready(()=>{ //选中相应复选框时使标签处于活动状态 $(“#工作日列表标签”)。单击((事件)=>{ event.stopPropagation(); log($(this)); log($('weekdayList li:nth child(2)label'); $(this.toggleClass('active');

我试图访问无序列表中的子元素,但没有得到预期的值

以下是我的HTML代码:

  • s
  • M
  • T
  • W
  • T
  • F
  • s
JS代码:

$(文档).ready(()=>{
//选中相应复选框时使标签处于活动状态
$(“#工作日列表标签”)。单击((事件)=>{
event.stopPropagation();
log($(this));
log($('weekdayList li:nth child(2)label');
$(this.toggleClass('active');
});
});
代码笔在这里:

例如,当我单击'M'
标签
时,我期望得到
console.log($(this))的输出
console.log相同($('#weekdayList li:nth child(2)label')

与此相反:

Object{0:label,长度:1,prevObject:Object(1)}
我明白了:

对象[窗口]

我做错什么了吗?非常感谢您的帮助。

您使用的是箭头功能,因此,$(此)不正确。 而不是

$('#weekdayList label').click((event) => {
});
请使用这个:

$('#weekdayList label').click(function (event) {
    // You can use $(this) here
});
$(文档).ready(()=>{
//选中相应复选框时使标签处于活动状态
/*$(“#工作日列表li”)。单击(函数(事件){
event.stopPropagation();
log($(this));
log($('weekdayList li:nth child(2)label');
$(this.toggleClass('active');
})*/
$('#weekdayList li')。单击((事件)=>{
event.stopPropagation();
log($(event.currentTarget));
log($('weekdayList li:nth child(2)label');
$(event.currentTarget).toggleClass('active');
});

});
您是否尝试在document.ready外部创建click event函数?是的,它没有更改任何内容。这是因为
箭头函数内部处于其更高范围的上下文中。这不会更改任何内容。即使我在
$(document).ready()中更改了函数,输出相同,标签不改变颜色。这实际上有所帮助,但我的单击功能被调用了两次。这就是为什么我之前认为这个改变没有帮助。有什么想法吗?@MattMcCarthy您看到什么表明click事件被触发了两次?在代码示例中,输出增加了一倍,但不是我的原始代码。在我的示例中,我的目标是
#weekdayList li
,但当我将其更改回时,它只触发一次。问题解决了。谢谢大家!