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

时间:2010-05-11 16:19:01

标签: javascript jquery firefox internet-explorer

我的代码很简单但只适用于IE而不是Firefox。

$(document).ready(function(){
    $('li#first').click();
});

我也尝试过:

document.getElementById('first').click();

但这也不起作用。

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

回应评论:

  1. 有一个带ID的元素 首先,没有了。
  2. 这是列表元素上的一个onclick,它扩展了元素并将焦点移到了Google Map元素上。
  3. 在patrick的响应中运行代码(向元素添加另一个click事件)产生了一些有趣的行为。当运行$('li#first').click()时,只触发了新事件,但是用鼠标点击了该元素(新的和原始的)。
  4. 提前致谢。

5 个答案:

答案 0 :(得分:10)

Firefox不支持click()。

正在运行document.getElementById('first').click()会返回以下错误click is not a function

所以我添加了一段代码来为每个元素添加click()功能。经过一系列痛苦的谷歌搜索后发现This code this thread

该片段位于下方,只需在页面上包含一次:

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);
} 

答案 1 :(得分:2)

您的代码应该可以在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>

答案 2 :(得分:1)

试试这个 HTML

<a id="link" href="url">click here</a>

JS

$(document).ready(function(){
    $("#link").click(function(){
        window.location.href = $(this).attr('href');
    });
});

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

$(document).ready(function(){
        $("#link")[0].click();
    });

答案 3 :(得分:0)

您是否想要转到第一个链接?您无法通过点击触发链接的默认操作。

但这是一个解决方法:

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

来源:http://forum.jquery.com/topic/jquery-a-0-click-not-working

答案 4 :(得分:0)

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

<a id="vidLeftArrow" blah blah blah>...</a>
$("#vidLeftArrow").click(function () {
   //Do something
});

哪个不起作用。我不得不将javascript更改为:

<a id="vidLeftArrow" blah blah blah>...</a>
$("a#vidLeftArrow").click(function () {
   //Do something
});