jQuery事件的执行顺序

时间:2015-01-27 14:34:09

标签: javascript jquery html

在这个小提琴中:http://jsfiddle.net/Ly6amgr8/

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

首次点击后,点击红色■,应隐藏p标记,然后运行其他一些代码。

状态pdata-open1/0确定。

问题在于,我先写$.on()哪个,#switch代码先运行,然后更改data-open以及#parent代码无关紧要符文并再次显示p

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

1 个答案:

答案 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)
    }
});