Hi,

I'm trying to get a onBlur event working in Safari. The problem lies
in getting the triggering element. I have no idea what the problem is.

Using this to get a triggering element:

var _trigger = e.originalEvent.explicitOriginalTarget ||
e.relatedTarget || document.activeElement;

For some reason e.relatedTarget is always undefined (in Safari and FF
anyway).

Does anyone knows if there's a workaround? Is this a bug in webkit/
safari or jQuery?


What I'm want to do is to find if the element that triggered the
onBlur is inside my <div class=""></div> using this code:

$('.search_field').blur(function(e) {
        var _trigger = e.originalEvent.explicitOriginalTarget ||
e.relatedTarget || document.activeElement;
        /** Check if _trigger is really an element **/
        _trigger = _trigger.nodeType == 1 ? _trigger :
_trigger.parentNode;

        var isChild = false;

        $('.search_box').find('*').each(function(index, elem) {
                if (_trigger === elem) {
                        isChild = true;
                }
        });

        if (!isChild) {
                $('.search_results_box').hide();
        };
});

Also, if anyone got a hit if there's a better way to write this, fell
free.

..fredrik

Reply via email to