主要的Onclick除了一个div

时间:2014-09-07 12:26:45

标签: 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"></div>
    <div id="test6"></div>
    <div id="test7"></div>
</main>

有了这个,如果我点击divs将执行&#34; test()&#34;功能,如果我想要id为#34; NO-test4&#34;不要执行此操作吗?

3 个答案:

答案 0 :(得分:1)

在您的点击处理程序中,您需要测试event.target property以查看所点击的元素是否是您要排除的元素。因此,您需要将event对象传递给您的函数:

<main onclick="test(event)" id="main">

然后:

function test(e) {
    if (e.target.id === "NO-test4") return; // do nothing
    // code for other divs' clicks here
}

演示:http://jsfiddle.net/Lzykkw4t/

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

document.getElementById("main").addEventListener("click", test);

(该代码需要在&#34; main&#34;元素之后的脚本元素中,或者在文档就绪或onload处理程序中。)

演示:http://jsfiddle.net/Lzykkw4t/1/

答案 1 :(得分:0)

只需你可以点击所需的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>

答案 2 :(得分:0)

您可以使用click

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

JSFIDDLE DEMO