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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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 点击别处_Javascript_Jquery - Fatal编程技术网

Javascript 点击别处

Javascript 点击别处,javascript,jquery,Javascript,Jquery,我对点击事件有问题。单击到另一个包含事件的元素(单击),与单击其他位置不同。我想要一个活动元素或没有 演示: 代码: 在span事件处理程序的开头添加以下内容: $('.active').removeClass('active'); 这是假设您希望在同一范围内多次单击以保持处于活动状态。如果你不想这样,那么告诉我,我可以修改代码。 ​ 在事件处理程序的开头添加以下内容: $('.active').removeClass('active'); 这是假设您希望在同一范围内多次单击以保持处于活

我对点击事件有问题。单击到另一个包含事件的元素(单击),与单击其他位置不同。我想要一个活动元素或没有

演示:

代码:


span
事件处理程序的开头添加以下内容:

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

这是假设您希望在同一范围内多次单击以保持
处于活动状态
。如果你不想这样,那么告诉我,我可以修改代码。

在事件处理程序的开头添加以下内容:

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

这是假设您希望在同一范围内多次单击以保持
处于活动状态
。如果你不想这样,那么告诉我,我可以修改代码。

如果要在单击
span
本身时保持关闭切换功能,则可以使用以下选项。另外,请注意,每次单击范围时都会绑定一个事件处理程序


如果要在单击
span
本身时保持关闭切换功能,则可以使用以下命令。另外,请注意,每次单击范围时都会绑定一个事件处理程序


首先,您应该将div处理程序移到外部,然后基于div元素
removeClass

$('span').click(function(e) {
    e.stopPropagation();

    $(this).parent().find('span').removeClass('active');   
    $(this).toggleClass('active');
});

$('div').click(function() {
    $(this).find('span').removeClass('active');
});

演示:

对于初学者,应该将div处理程序移到外部,然后根据div元素移除类

$('span').click(function(e) {
    e.stopPropagation();

    $(this).parent().find('span').removeClass('active');   
    $(this).toggleClass('active');
});

$('div').click(function() {
    $(this).find('span').removeClass('active');
});

演示:不要在单击处理程序中绑定单击处理程序,只需检查目标是单击处理程序中的div还是span。另外,在将
活动
类添加到
时,只需在任何同级跨度上删除它:

$('span').on('click', function(){
    $(this).toggleClass('active').siblings('span').removeClass('active');
});

$('div').on('click', function(e){                        
    if (e.target == this) $('span').removeClass('active');                            
}); 

不要在click处理程序中绑定click处理程序,只需检查目标是click处理程序中的div还是span。另外,在将
活动
类添加到
时,只需在任何同级跨度上删除它:

$('span').on('click', function(){
    $(this).toggleClass('active').siblings('span').removeClass('active');
});

$('div').on('click', function(e){                        
    if (e.target == this) $('span').removeClass('active');                            
}); 

我希望我能理解你的问题…你想要的最终结果是什么?我希望我能理解你的问题…你想要的最终结果是什么?@VIDesignz。。。那不是故意的。。让我换一种说法。。您可能希望将该div click处理程序移到span click处理程序之外,以避免在每次单击时绑定处理程序。@VIDesignz。。。那不是故意的。。让我换一种说法。。您可能希望将该div click处理程序移到span click处理程序之外,以避免在每次单击时绑定处理程序。是否有可能对每个元素分别执行此操作?我不想在整个文档中搜索并从所有特定(类、名称等)元素中删除类。我的例子只是一个例子,我不知道。所以这个问题,所以我在我的例子中使用点击。@Moriarty:我不知道你的意思。对我来说,我的代码似乎解决了您的问题。是否有可能,对每个元素分别执行此操作?我不想在整个文档中搜索并从所有特定(类、名称等)元素中删除类。我的例子只是一个例子,我不知道。所以这个问题,所以我在我的例子中使用点击。@Moriarty:我不知道你的意思。对我来说,我的代码似乎解决了你的问题。