在这个小提琴中:http://jsfiddle.net/Ly6amgr8/
单击橙色边框区域应显示p
标记并运行一些代码。
首次点击后,点击红色■,应隐藏p
标记,然后运行其他一些代码。
状态p
由data-open
,1/0
确定。
问题在于,我先写$.on()
哪个,#switch
代码先运行,然后更改data-open
以及#parent
代码无关紧要符文并再次显示p
。
我知道toggle
但这里不能使用,因为代码和触发器不同。
答案 0 :(得分:1)
问题是事件冒泡event.stopPropagation()
应该修复它。已更新小提琴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)
}
});