Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.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 除一个div外的主Onclick_Javascript_Html_Onclick - Fatal编程技术网

Javascript 除一个div外的主Onclick

Javascript 除一个div外的主Onclick,javascript,html,onclick,Javascript,Html,Onclick,我有一个问题,我不知道该怎么办。 我有以下代码: <main onclick="test()" id="main"> <div id="test1"></div> <div id="test2"></div> <div id="test3"></div> <div id="NO-test4"></div> <div id="test5">

我有一个问题,我不知道该怎么办。 我有以下代码:

<main onclick="test()" id="main">
    <div id="test1"></div>
    <div id="test2"></div>
    <div id="test3"></div>
    <div id="NO-test4"></div>
    <div id="test5"></div>
    <div id="test6"></div>
    <div id="test7"></div>
</main>


这样,如果我单击divs将执行“test()”函数,如果我希望id为“NO-test4”的div不执行此onclick,我该怎么办?

在单击处理程序中,您需要测试,以查看单击的元素是否是要排除的元素。因此,您需要将
事件
对象传递给您的函数:

<main onclick="test(event)" id="main">
演示:

如果删除内联
onclick=
属性,而是从JS绑定单击处理程序,则
事件
对象将自动传递给函数:

document.getElementById("main").addEventListener("click", test);
(该代码需要位于“main”元素之后的脚本元素中,或者位于文档就绪或onload处理程序中。)


演示:

只需单击所需的div即可:

<main id="main">
   <div id="test1" onclick="test()"></div>
   <div id="test2" onclick="test()"></div>
   <div id="test3" onclick="test()"></div>
  <div id="NO-test4"></div>
  <div id="test5" onclick="test()"></div>
  <div id="test6" onclick="test()"></div>
  <div id="test7" onclick="test()"></div>
</main>

您可以使用
jquery处理
单击

$( document ).ready(function() {
    $("#main").children('div').click(function () {
        if ($(this).attr("id") == "NO-test4")
            alert ('Disabled');
        else 
            test();      
    });                   
});

你尝试过什么吗…?这个问题似乎离题了,因为这是一篇简单的“为我编写代码”的帖子。但不是很容易扩展,是吗?解决了,这就是解决方案。
$( document ).ready(function() {
    $("#main").children('div').click(function () {
        if ($(this).attr("id") == "NO-test4")
            alert ('Disabled');
        else 
            test();      
    });                   
});