避免为父母和孩子开除事件

时间:2012-01-31 09:15:53

标签: jquery events

我有一个以这种方式构建的菜单:

ul
    li
        a
    li
        a
    li
        a

我遇到的问题是:当用户点击li a时,li功能也会触发。 li - 函数只有在有人点击li时才会触发(错误标记在a-tag上)。

$('#stromSkjemaTabs li').children().mousedown(function () {
    $('#console').append('debug1 <br />');
});
$('#stromSkjemaTabs li').mousedown.(function () {
    $('#console').append('debug2 <br />');
});

有没有办法写这个,所以只有其中一个功能被激活? 单击li a时,应该触发包含“debug1”的函数(也不是debug2)。点击li时,应启动debug2。

我已尝试过各种儿童组合(),但我无法让它发挥作用。

任何砍刀都在那里?

1 个答案:

答案 0 :(得分:1)

从此改变..

$('#stromSkjemaTabs li').children().mousedown(function () {
    $('#console').append('debug1 <br />');
});

到这个

$('#stromSkjemaTabs > li > a').mousedown(function (e) {
    e.stopPropagation();
    $('#console').append('debug1 <br />');
});

上一个会在li的所有孩子身上触发mousedown事件,无论是a还是{。}}。