Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.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中使用$(this)并不总是有效的_Javascript_Jquery - Fatal编程技术网

Javascript 在jQuery中使用$(this)并不总是有效的

Javascript 在jQuery中使用$(this)并不总是有效的,javascript,jquery,Javascript,Jquery,在下面的第6行,我有$(“ul.tabrow li”).removeClass(“active”)//如果我将任何“活动”类更改为使用$(this),请删除该类。如果改为删除类(“活动”),则该类将无法正常工作 代码的工作方式是我现在想要的,我只是想知道为什么我上面提到的不起作用,在下面的第7行中,我使用了$(this),在第7行的代码上使用的是相同的选择器,但在第6行中使用的是不同的选择器 有人能解释一下吗 $("ul.tabrow li").bind({ click: function(

在下面的第6行,我有
$(“ul.tabrow li”).removeClass(“active”)//如果我将任何“活动”类更改为使用
$(this),请删除该类。如果改为删除类(“活动”)
,则该类将无法正常工作

代码的工作方式是我现在想要的,我只是想知道为什么我上面提到的不起作用,在下面的第7行中,我使用了
$(this)
,在第7行的代码上使用的是相同的选择器,但在第6行中使用的是不同的选择器

有人能解释一下吗

$("ul.tabrow li").bind({
  click: function() {
    return false;
  },
  mouseenter: function() {
    $("ul.tabrow li").removeClass("active"); //Remove any "active" class
    $(this).addClass("active"); //Add "active" class to selected tab
    $(".tab-box").hide(); //Hide all tab content
    var activeTab = $(this).find("a").attr("href"); //Find the rel attribute value to identify the active tab + content
    //$(activeTab).fadeIn(); //Fade in the active content
    $(activeTab).show(); //Fade in the active content
    return false;
  }
});
实际上,您希望在第6行使用
$(“ul.tabrow li”)
。这是因为
$(This)
仅引用当前列表项,而不是所有列表项

$(此)
不是选择器的替代品,它指的是当前活动元素(您正在鼠标悬停的元素)。因此,在第六行使用
this
从当前元素中删除活动类,然后立即将其添加回。结果基本上是什么都没有发生

如果不想重复选择器,则可能需要使用更通用的选项,如

$(this).siblings().removeClass('active');

解释“然后它就不能像我想的那样工作了”我不确定,但你可以使用chrome或firebug或类似的东西在
$(这)
行中打断它,看看它到底指向什么(参见局部变量下的id属性)。它可能将其视为父元素而不是li。好的,我现在明白了,这是一行选项卡,因此
$(“ul.tabrow li”)
从所有选项卡中删除活动类,然后将其添加到悬停的选项卡中,感谢您的帮助