在这个 fiddle 中:http://jsfiddle.net/Ly6amgr8/
单击橙色边框区域应显示 p
标记并运行一些代码。
第一次点击后,点击红色的■,应该隐藏p
标签,并运行一些其他代码。
p
的状态由 data-open
、1/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/