tags:

views:

37

answers:

3

I have an event attached to a div element that will remove the element onclick. I also have a jQuery live event that I am attaching to the same element like so,

$("#divEle").live('click', function() {
    alert($(this).html());
});

In FF, this event executes. But in IE8 the first event removes the element and the live event never takes place. I assume this has to do with the way the browsers bubble the events, but I need to find a way to get both of these events to take place.

Here is a small example of the code, and it would not matter which event is first. I tried both. I assume this is because live requires propagation, and click does not.

$(function() {
    $("#myele").live('click', function() {
        alert('works in ff');
    });

    $("#myele").click(function() {
         $("#myele").remove();
    });
});

Thanks for any help!
Metropolis

UPDATE

Sorry I left something out. The element is getting removed using a plugin function. So I need the functions to work together separately.

A: 

Why not just attach one event that will do what you need it to do and then remove the element?

Like so:

$("#divEle").live('click', function() {
    // do stuff that you want to do first

    // remove the element
});
theycallmemorty
See my updated question
Metropolis
+1  A: 

Gecko supports up/down bubbling, but IE only supports up bubbling. You might need to call the following on the remove event:

event.stopPropagation (for gecko)
window.event.cancelBubble = true (ie)

Here's a more complete solution:

function doSomething(e)
{
    if (!e) var e = window.event;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
}

Read http://www.quirksmode.org/js/events_order.html for more info

Here is a more accurate link for what the author was looking for: http://www.bennadel.com/blog/1822-Learning-jQuery-1-4-Remove-vs-Detach-.htm

bryan.taylor
Sorry might have misunderstood. Just reread your post, did you say you are removing the whole element? I was under the impression you were removing just the event.Also can you post how you are doing the removing? Hard to give an accurate answer without seeing the event removal.
bryan.taylor
Here's a better resource if you're talking of removing an element that adds a .live click handler after the remove.http://www.bennadel.com/blog/1822-Learning-jQuery-1-4-Remove-vs-Detach-.htm
bryan.taylor
@bryan.taylor Yes that link is exactly what I needed. Thanks! Can you make this be your answer so that the correct answer is more clear please.
Metropolis
A: 

I did some testing of this and could not reproduce: http://jsfiddle.net/LdqyG/

I guess I need some details on the plug-in and how it is removing the element.

Mark Schultheiss