Skip to main content

Avoid event fireing for both parents and children



I have a menu built this way:







ul

li

a

li

a

li

a







The problem I am having is this: When a user clicks li a the li-function fires as well. The li -function should only fire if someone clicks just the li (misses on the a-tag).







$('#stromSkjemaTabs li').children().mousedown(function () {

$('#console').append('debug1 <br />');

});

$('#stromSkjemaTabs li').mousedown.(function () {

$('#console').append('debug2 <br />');

});







Is there any way of writing this so only one of the functions fires? When clicking the li a the function containing "debug1" should fire (NOT debug2 too). When clicking li the debug2 should fire.





I've tried every combination of children() but I can't get this to work.





Any cleaver heads out there?


Comments

  1. Change this..

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


    to this-

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


    uper one will fire mousedown event on all the children of li, whether it is a or not.

    ReplyDelete

Post a Comment

Popular posts from this blog

Slow Android emulator

I have a 2.67 GHz Celeron processor, 1.21 GB of RAM on a x86 Windows XP Professional machine. My understanding is that the Android emulator should start fairly quickly on such a machine, but for me it does not. I have followed all instructions in setting up the IDE, SDKs, JDKs and such and have had some success in staring the emulator quickly but is very particulary. How can I, if possible, fix this problem?