jQuery останавливает распространение событий в IE по умолчанию, даже если в обработчике событий .delegate возвращается * true *. - PullRequest
1 голос
/ 17 января 2011

Я должен искать клики на тегах привязки, как и когда они происходят, и регистрировать их.Обработчик события делегата jQuery для кликов останавливает поведение ссылок по умолчанию в IE (, т. Е. Нажатие на ссылки не переносит меня на новую страницу, или что-то, что ссылка действительно должна была делать ), тогда как в Firefoxработает просто отлично.

Я был бы рад, если бы кто-нибудь из сообщества помог мне разобраться с этим.

ОБРАЗЕЦ КОДА:

function logLink(event,target)
{
    //no logging for right click
    if(event.which<3)
    {
        if(filterLinks(target))
        {
            alert('This will log data');
            return true;
        }
    }
    return true;
}

/*
 *Method to filter all html links which are  to be logged 
 */
function filterLinks(linkObj)
{
    //go into second phase only if the passed object is a link.
    if(linkObj.tagName == 'A')
    {
        alert('second phase')
        if( linkObj.hostname==undefined ||linkObj.hostname==''|| linkObj.hostname==null  || $(linkObj).attr('href')=='#' || (!$(linkObj).attr('href')) || $(linkObj).attr('href').beginsWith('javascript',true) ||  $(linkObj).attr('href').beginsWith('mailto',true)) 
        {
            alert('native code');
            $(linkObj).css('background','gray');
            return false;
        }
        for(var i=0;i<linkObj.attributes.length;i++)
        {
            if( !$.browser.msie && anchorTagProperties.indexOf(linkObj.attributes[i].nodeName)<0 )
            {
                alert('redenned tag has an unknown attribute' + linkObj.attributes[i].nodeName);
                $(linkObj).css('background','red');
                return false;
            }


        }
        return true;
    }
    else
    {
        return false;
    }
}

$(function (){

var testVar=undefined;

//adding delegate listener for trackedLink class
$('body').delegate(".trackedLink", "mouseup", function(event){
        alert('mouseup'); 
        var returnValue =logLink(event,this);
        return true;
});

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...