繁体   English   中英

使方法“点击”跨浏览器的插件

[英]plugin to make the method “click” cross-browser

我制作了这个插件来使方法[[0] .click()”跨浏览器,但是我无法在Firefox中工作,我在Firefox中的当前版本是3 .6。 16.其他浏览器(Opera / Chrome / Safari / IE)运行良好。

HTML:

<a href="#" id="myanchor">z</a>

<ul>
   <li id="1">1</li>
   <li id="2">2</li>
   <li id="3">3</li>
</ul>

使用Javascript:

jQuery.fn.runClick = function () {

    var element = jQuery(this).get(0);

    if (jQuery.browser.msie) { // IE
        element.click();
    }
    else {

        //var evt = document.createEvent("HTMLEvents");
        //evt.initEvent('click', true, true);

        var evt = element.ownerDocument.createEvent('MouseEvents');
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);

        element.dispatchEvent(evt);

    }

    return this;
};

jQuery(function() {

    jQuery('li').bind('click', function(event) {

        var 
            key = jQuery(this).attr('id');

        jQuery('#myanchor').attr('href', 'www.mydomaind.com/x/?id=' + key).runClick(); 

    });

});

基于这个问题

谢谢。

编辑

我根据评论和回应扩展了一个示例

编辑二

类似的问题:

怎么办-I-编程键式上的元素,在Firefox的
浏览器友好路到模拟锚点击与- jQuery的

您使用的是jQuery,但未使用jQuery的.click()方法... 为什么

var $elements = $('some-jquery-selector');

$elements.click(); // that's it.

显然,在Firefox中单击链接不会触发它:

jQuery('#myanchor').click(function(){
    alert("I was clicked, but I'll do nothing about it");
});
jQuery("li").click(function(){
    var key = jQuery(this).attr('id');
    jQuery('#myanchor').attr("href", "http://www.mydomaind.com/x/?id=" + key).click();
});

我看不到您的全景,因此您可能有充分的理由这么做。 但是,如果所有这些操作的唯一目的是转到另一页,请直接执行以下操作:

jQuery("li").click(function(){
    top.location.href = "http://www.mydomaind.com/x/?id=" + this.id;
});

PS ID不能以数字开头。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM