Javascript Click()适用于IE,但不适用于Firefox

Javascript Click()适用于IE,但不适用于Firefox,javascript,jquery,firefox,internet-explorer,Javascript,Jquery,Firefox,Internet Explorer,我有一些代码很简单,但只在IE中有效,而不是在Firefox中 $(document).ready(function(){ $('li#first').click(); }); 我也尝试过: document.getElementById('first').click(); 但这也不行 这是IE的错误/功能还是其他浏览器不支持click() 答复评论: 有一个ID为的元素 首先,没有了 它是一个onclick-on-the-list元素,用于扩展元素并将焦点移动到googlemap元

我有一些代码很简单,但只在IE中有效,而不是在Firefox中

$(document).ready(function(){
    $('li#first').click();
});
我也尝试过:

document.getElementById('first').click();
但这也不行

这是IE的错误/功能还是其他浏览器不支持
click()

答复评论:

  • 有一个ID为的元素 首先,没有了
  • 它是一个onclick-on-the-list元素,用于扩展元素并将焦点移动到googlemap元素上
  • 运行patrick响应中的代码(向元素添加另一个单击事件)产生了一些有趣的行为。运行
    $('li#first')时。单击()
    仅激发新事件,但用鼠标物理单击元素(新事件和原始事件)

  • 提前感谢。

    您想转到第一个链接吗?不能通过单击触发链接的默认操作

    但这里有一个解决办法:

    var link = jQuery("#first>a", this)
    if(!link.onclick) window.open(link.href, link.target || "_self")
    else jQuery(link).click()
    

    来源:

    Firefox不支持单击()

    运行
    document.getElementById('first')。单击()
    返回以下错误
    click不是函数

    因此,我添加了一段代码,将click()功能添加到每个元素中。在一系列痛苦的谷歌搜索后被发现

    代码段如下所示,只需在页面上包含一次:

    HTMLElement.prototype.click = function() {
       var evt = this.ownerDocument.createEvent('MouseEvents');
       evt.initMouseEvent('click', true, true, this.ownerDocument.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
       this.dispatchEvent(evt);
    } 
    

    您的代码应该在Firefox中工作。这里有一个完整的片段可以证明这一点:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head><title></title>
    <style type="text/css"><!--
    --></style>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
    <script type="text/javascript"><!--
    jQuery(function($){
        $(document).ready(function(){
            $('li#first')
                .click(function(){
                    alert("I've been clicked: " + $(this).text());
                })
                .click();
        });
    });
    //--></script>
    </head>
    <body>
    
    <ul>
        <li id="first">First item</li>
        <li>Second item</li>
        <li>Third item</li>
    </ul>
    
    </body>
    </html>
    
    
    
      第一项
    • 第二项
    • 第三项
    试试这个 html

    如果这是你不想做的事情,也可以尝试这样的事情:

    $(document).ready(function(){
            $("#link")[0].click();
        });
    
    <a id="vidLeftArrow" blah blah blah>...</a>
    $("#vidLeftArrow").click(function () {
       //Do something
    });
    

    Firefox确实支持.click()JQuery函数。我也有同样的问题,直到我在选择器中指定了标记名。基本上,我有这样的想法:

    $(document).ready(function(){
            $("#link")[0].click();
        });
    
    <a id="vidLeftArrow" blah blah blah>...</a>
    $("#vidLeftArrow").click(function () {
       //Do something
    });
    
    。。。
    $(“#vidLeftArrow”)。单击(函数(){
    //做点什么
    });
    
    这没用。我必须将javascript更改为:

    <a id="vidLeftArrow" blah blah blah>...</a>
    $("a#vidLeftArrow").click(function () {
       //Do something
    });
    
    。。。
    $(“a#vidLeftArrow”)。单击(函数(){
    //做点什么
    });
    
    HTML是什么样子的?页面上有多少元素的id为“first”?在IE中可用,但在Firefox中不可用。现在有了一些新的东西还有哪些其他事件绑定到
  • 元素或它的父元素?你怎么知道它被点击了呢?这是一个在列表元素上的onclick,它扩展了元素并将焦点移到Google地图元素上。jQuery版本的
    click()
    应该在Firefox中运行。这个答案解决了你的问题吗?@patrick:是的。jQuery
    click()
    仅在使用jQuery.Strange添加事件时起作用。如果我使用jQuery的
    。click()
    函数(jQuery 1.4.2),我可以启动Firefox中内联“onClick”设置的处理程序。不过,很高兴你让它工作了。明天我会编辑这个问题以包含原始代码。我在Firefox 3.0.19中测试了你的代码,但在Firefox 16中没有。Firefox16有什么解决方案吗?你说得对。单击可以工作,但这是一个由这种情况引起的错误-不是直接单击。