开发者

Mouseover/leave problem

I have a span that includes an anchor and a span. Example below

<span id="x"><a id="a_in" href="">link</a><span id="x_in">x</span></span>

Now I am attaching a mousenter / mouseleave event on the span with id="x". When I mouse o开发者_C百科ver the the span id="x" it triggers the mousenter / mouseleave that's fine. The problem is when I mouseover the span id="x_1" inside the parent span mouseleave gets triggered.

I want mousenter / mouseleave to be triggered only when I mouseenter or mouseleave the parent.

Any ideas how to avoid this?


short answer: you can't avoid this, but you can determine that the mouseleave/enter only happens on the parent

function mouseleaveOrEnterHandler(e){
   e = e || window.event;
   var target = e.target || e.which;
   if(target.id=='x') {
      //do something here
   }
}


Just be specific in what event you want to fire on what element. If your using jQuery: $("span#x").hover(function() { //action logic for mouse enter }, function() { //action logic for mouse leave });


you need cancelBubble() and stopPropagation().

See here: http://www.thedutchguy.com/article/javascript-prevent-event-bubbling-parent-child-when-fired.html

and also here: http://www.openjs.com/articles/prevent_default_action/


OK...thank you guys. The prob was on a new div that I was showing on the mouseenter which overlapped my SPAN X and triggered mouseleave.

Also...

MooTools features mouseenter and mouseleave because mouseover/mouseout sometimes just does not work as expected. Mouseenter only fires once you enter the element and does not fire again if your mouse crosses over children of the element.

...so pretty much it does what you guys are suggesting and it works fine. http://demos.mootools.net/Mouseenter

Just in case someone is looking for how to stop propagation using mootools...

$('myelement').addEvent('click', function (e) { var event = e || window.event; if (event.stopPropagation) { event.stopPropagation(); } else { event.cancelBubble = true; } });

Thank you for your help!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜