1

Javascript onclick 需要单击两次才能运行函数。我需要它在第一次点击时运行,这是我的问题。我已经用谷歌搜索并搜索了 2 天,但没有找到有效或我理解的回复。

可以在这里找到 javascript 的代码:http: //enji.se/windows8/js/script.js

以及我希望它工作的网站: http: //enji.se/windows8/

这是我正在尝试制作的一个看起来像 Windows 8 的网站。它只会在谷歌浏览器和高于 1265x820 的分辨率上正确显示,并且在高于 1590x920 的分辨率上会很棒

提前致谢/enji

解决了

4

3 回答 3

8

问题出在您的点击处理程序内部boxBegin- 在第一次点击时接收到点击事件并正确传递给您的方法,但在内部boxBegin您正在切换值的行为box.style.display- 在 IE9 中,这最初是“”,这会触发您的关闭代码而不是你想要的开放代码。

更改框开始为:

function boxBegin() {
    var box = document.getElementById('boxBegin');
    if (!box.style.display || box.style.display == "none") {
        box.style.display = "block";
    }
    else {
        box.style.display = "none";
    }
}
于 2011-06-05T21:54:05.330 回答
1

当我遇到同样的问题时,我用谷歌搜索了这个。

我正在检查 window.location.hash 是否为某个值,然后相应地设置我的菜单选项卡的样式。

对我来说,解决方案就像运行 10 毫秒延迟函数一样简单,然后运行我的主要函数。

对我来说,问题来自一个脚本,该脚本在进行更改的同时检查更改,而不是之前,不是之后,而是同时。这使我不得不双击它以再次更改,并且该功能再次注意到更改。

请记住,当事情似乎没有记录更改时,即使运行 5 毫秒延迟脚本总是更容易。这一次又一次地帮助了我

于 2012-04-17T21:39:10.020 回答
-1

据我所知,onclick注册单击?

如果 onclick 需要双击,则可能是浏览器特定的问题。

同样来自MDC 文档

当用户点击一个元素时会引发 click 事件。click 事件将在 mousedown 和 mouseup 事件之后发生。

另外:简单的测试用例@JS Fiddle

于 2011-06-05T21:48:29.323 回答