首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >getelemenById(‘.’).click在Chrome中不工作

getelemenById(‘.’).click在Chrome中不工作
EN

Stack Overflow用户
提问于 2012-04-06 09:08:09
回答 3查看 4.9K关注 0票数 0

可能重复: ).click();在Firefox/chrome中不工作,在IE中工作

我有一个选项卡式html页面。

代码语言:javascript
复制
                <ul class="tabs">
                    <li><a href="#tab1" id='accomodation'>Accomodation</a></li>
                    <li><a href="#tab2" id='relaxation'>Relaxation</a></li>
                    <li><a href="#tab3" id='recreation'>Recreation</a></li>
                  </ul>

我来自另一个带有click的html,我想显示关于我之前单击的内容的选项卡(我将它存储在一个cookie中)。

因此,我为选项卡添加了ID,当此页面加载时,我调用一个函数,该函数从cookie读取ID,然后单击有关选项卡。该函数在页面加载时运行:

代码语言:javascript
复制
<body onLoad="where_from();">

以下是功能:

代码语言:javascript
复制
function where_from()
{
    if (readCookie('came_from')!="false")
    {
        pos=readCookie('came_from');
        if (pos=='relaxation')
            document.getElementById('relaxation').click();

        if (pos=='recreation')
            document.getElementById('recreation').click();
}

}

它在IE和Firefox中运行得很好,但在Chrome中什么也没有发生。

有人能帮上忙吗?

我觉得getelementById.click调用出现了一些问题,但是我找不到这里描述的任何解决方案。

救命啊!!

EN

回答 3

Stack Overflow用户

发布于 2012-04-06 09:14:46

Chrome不支持元素上的click()。您可以这样实现它:

代码语言:javascript
复制
if( !document.body.click) {
    HTMLElement.prototype.click = function() {
        var t = this;
        do {
            if( t.onclick) t.onclick();
            t = t.parentNode;
        } while (t);
    }
}

这只是一个近似,因为它不能正确地处理事件对象,但在大多数情况下,这应该是相当好的工作。

票数 2
EN

Stack Overflow用户

发布于 2012-04-06 09:23:54

我认为您不需要单击选项卡链接来更改页面。

你可以用document.location.href做,

代码语言:javascript
复制
function where_from()
{
    if (readCookie('came_from')!="false")
    {
        pos=readCookie('came_from');
        if (pos=='relaxation')
            document.location.href = document.getElementById('relaxation').href;

        if (pos=='recreation')
            document.location.href = document.getElementById('recreation').href;
     }
}

下面是一个手舞足蹈的例子,这是从这里复制的。

票数 0
EN

Stack Overflow用户

发布于 2012-04-06 09:26:06

如果document.getElementById('relaxation').click();不起作用,这可能适用于您:$('#relaxation').click();

例:

代码语言:javascript
复制
$('#relaxation').click(function(){

//Onclick do something

});

要下载Jquery文件,请访问:http://jquery.com/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10041377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档