Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.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/3/html/69.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
jQuery单击打开或关闭_Jquery_Html_Click - Fatal编程技术网

jQuery单击打开或关闭

jQuery单击打开或关闭,jquery,html,click,Jquery,Html,Click,可能重复: 我有这个HTML <div id="outer"> <input id="input1" type="text" value="button1"/> <input id="input2" type="text" value="button2"/> </div> 基本上,我正在努力 如果用户在内部单击 id=“outer”然后什么也不做 如果用户在外部单击 id=“outer”做点什么 有人能推荐更好的吗?这是一个重复的问题,

可能重复:

我有这个HTML

<div id="outer">
  <input id="input1" type="text" value="button1"/>
  <input id="input2" type="text" value="button2"/>
</div>
基本上,我正在努力

  • 如果用户在内部单击
    id=“outer”
    然后什么也不做
  • 如果用户在外部单击
    id=“outer”
    做点什么

  • 有人能推荐更好的吗?

    这是一个重复的问题,来自最近提出的一个问题……我会找到答案并发布一个链接

    $(document).bind('click', function (e) {
     // Do whatever you want; #outer click event has been stopped
    });
    
    $('#outer').bind('click', function(e) {
        e.stopPropagation();
    });
    

    如果不尝试将事件绑定到DOM中不存在的元素,我建议不要使用。使用或代替

    此外,不要检查非空字符串,而是使用length属性:

    if (insideOuter.length > 0 && ...
    

    几乎是这样:)
    一旦事件传播到文档顶部,.live()方法处理事件,就不可能停止live事件的传播
    ,然后只需将live切换到bind即可。不要仅仅因为不喜欢我的评论就投反对票。你所伤害的只是SO社区。如果你认为这个问题是重复的,那么你应该这样投票,而不是答案。如果您有任何疑问,页面顶部会有一个FAQ和META链接。这应该是一个接近票数的投票(如果允许的话)或一个评论,而不是答案。@Bill yep tomalak已经通知我了。但我还没有必要的特权,这根本不能回答问题。这只是对他的编程吹毛求疵。这可能是一个更好的评论。作为一个回答,这只是令人困惑。@kasdega,问题是“有人能推荐更好的吗?”我相信@Tom在寻求建设性的批评。这就是我在这里试图做的。但问题的实质是,“有没有更简单更好的方法来做1)用户单击index id=“outer”,然后什么都不做,2)用户单击外部id=“outer”“做点什么。你基本上给了他一个代码审查,展示了如何抛光一个垃圾。当然,现在它很闪亮,但它仍然是一个垃圾。对不起,我们中几乎没有人从事精神阅读行业。而且你几乎没有判断答案是否合适的专业知识。此外,您不应该发布您认为重复的问题的答案。我最近看到过好几次有人问这个问题,我会找到重复的问题并将它们发布到我的答案中。@kasdega:最好投票以dup结束,或者作为评论写。@tomalak我在这里还是比较新的。谢谢你的提示。“下次我会这么做的。”卡德加:不用担心;我看你是新来的。谢谢你的贡献。
    if (insideOuter.length > 0 && ...
    
    $("body").live('click', function (e) {
        if ( $(e.srcElement).attr("id") !== 'outer' && $(e.srcElement).parents("#outer").length == 0)
            alert('foo');
    });