Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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选择器_Javascript_Jquery_Html - Fatal编程技术网

Javascript 不包含子项的jQuery选择器

Javascript 不包含子项的jQuery选择器,javascript,jquery,html,Javascript,Jquery,Html,我没有看到一个问题是这样的,所以这里是: 假设我有这个html结构: <div class="button"> <div class="text"> Button </div> </div> 我想选择.button元素,但不选择.btext元素。意思是,我想做一些像 $.button,该按钮不包括.btext。我想将其用于.hover匹配,但我不想在文本上悬停以触发事件 有什么方法可以做到这一点,还是html不可能

我没有看到一个问题是这样的,所以这里是:

假设我有这个html结构:

<div class="button">
    <div class="text">
        Button
    </div>
</div>
我想选择.button元素,但不选择.btext元素。意思是,我想做一些像

$.button,该按钮不包括.btext。我想将其用于.hover匹配,但我不想在文本上悬停以触发事件


有什么方法可以做到这一点,还是html不可能做到这一点?

当悬停事件触发时,它将返回元素,以便您可以在回调中找到它

$('button').hover(function(e){
  if (e.target == $('.text')){
         return false;
     }
});
编辑:

@阿尔尼塔克是正确的,这应该是正确的

   if ($(e.target).hasClass('text'))

您应该检查事件目标元素。检查e.target后,只需执行必要的操作。例如,它可以如下所示:

$('.button').mouseover(function(e) {
    $(this).toggleClass('hover', !$(e.target).hasClass('text'));
});

演示:如果您不希望事件从子级冒泡到父级,并且您正在使用jQuery,则可以在子级上使用event.stopPropagation,如下所示:

$(".text").hover(function(e){
    e.stopPropagation();
});

你在找滑鼠活动吗?似乎这是正确的方法,而不是悬停。@zhiayang:.b文本该类在示例HTML结构中不存在。IMHO,如果您希望这两个元素的行为不同,它们应该是同级,而不是父级和子级。这不应该起作用-您不能将一个元素与jQuery对象进行比较。