【问题标题】:jQuery click function exclude children except for onejQuery单击功能排除除一个之外的孩子
【发布时间】:2014-03-17 16:24:31
【问题描述】:

我有这段 HTML:

<div class="pop-up rooster-toevoegen">
    <div class="pop-up-container">
        <div class="pop-up-header clearfix">
            <div class="pop-up-title">
                Rooster toevoegen
            </div>
            <div class="sprite close"></div>
        </div>
        <div class="pop-up-content clearfix">
            <form id="rooster-toevoegen-form" class="form rooster-toevoegen-form">
                <div class="afdeling-container">
                </div>
                <div class="date-container">
                </div>
                <div class="button-container clearfix">
                    <button value="" name="rooster-toevoegen-button" class="rooster-toevoegen-button button-green">Toevoegen</button>
                </div>
            </form>
        </div>
    </div>
</div>

现在我想要 .rooster-toevoegen 上的点击功能,并从该点击功能中排除所有子项,按钮除外。并且按钮已经有一个功能(提交表单),这必须保留按钮事件处理程序。

上下文: 这是一个弹出窗口,里面有一个表单。当用户单击弹出窗口旁边时,弹出窗口必须关闭。当我没有将孩子排除在点击事件之外时,点击弹出窗口时不会。但是当用户点击按钮时,表单必须提交。所以按钮不应该被排除在点击之外并执行他自己的操作。

我该怎么做?

【问题讨论】:

  • 那么为什么不将事件处理程序附加到按钮上呢?
  • 对不起,我会编辑帖子,这可能有点混乱:P
  • 但是,为什么不直接在按钮上绑定事件呢?
  • 您可以将多个处理程序绑定到一个元素,因此没有什么能阻止您向按钮添加另一个处理程序
  • 你没有真正理解,你问错了问题。您真正想知道的是如何防止提交表单的默认操作,以及在单击按钮时执行其他操作。

标签: javascript jquery click children


【解决方案1】:

您可以使用 e.preventDefault() 防止冒泡到所有元素,并手动触发点击按钮。 更好的方法是仅将一个点击事件绑定到按钮。

【讨论】:

    猜你喜欢
    • 2011-01-28
    • 1970-01-01
    • 2011-11-08
    • 2012-05-10
    • 1970-01-01
    • 2017-09-08
    • 2011-10-23
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多