javascript - jQuery 事件的执行顺序

标签 javascript jquery html

在这个 fiddle 中:http://jsfiddle.net/Ly6amgr8/

单击橙色边框区域应显示 p 标记并运行一些代码。

第一次点击后,点击红色的■,应该隐藏p标签,并运行一些其他代码。

p 的状态由 data-open1/0 确定。

问题是,我先写哪个 $.on() 并不重要,始终是 #switch 代码首先运行,并更改 data-open 因此 #parent 代码 rune 并再次显示 p

我知道toggle,但它不能在这里使用,因为代码和触发器不同。

最佳答案

问题是事件冒泡 event.stopPropagation() 应该修复它。已更新 fiddle http://jsfiddle.net/Ly6amgr8/3/

$('#container').on('click', '#switch', function(event) {

    // close if is open
    if ($('p').data('open') == 1) {
        event.stopPropagation();
        $('p').slideUp();
        // Run some other Ajax, etc...
        $('p').data('open',0)
    }
});

关于javascript - jQuery 事件的执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28172956/

相关文章:

javascript - 使用 parallax.min.js 将空白添加到视差 div

javascript - PythonAnywhere 如何处理多个 "web workers"或进程

jquery - 尝试创建一个按钮,该按钮在单击时分成两个新按钮

jquery - 为什么从 Jquery 1.5.1 更改为 Jquery 1.8.1 会破坏我在 MVC3 中的所有 CSS?

angularjs - 尝试显示自定义颜色选择器

javascript - MIGS支付中的Hmac在php和Node.js中的不同

javascript - 是否有一个 UI 框架来模拟 Mac 应用程序的外观?

javascript - jquery 单选按钮,加上另外两个小问题

javascript - 如何将光标移动到文本区域中的下一个/上一个单词?

javascript - 如何使用 javascript 播放 google drive video?