Javascript onClick没有按预期工作

时间:2011-08-23 21:10:04

标签: javascript jquery click addeventlistener

我有一个(对我来说)奇怪的问题。 我打开那个开放的网址。当用户点击某个flashplayer(谁在div中)时我需要做 我把javascript代码

<script type="text/javascript">
    $("player").click(myfunc());
</script>


<script type="text/javascript">
    document.getElementById('player').addEventListener('click', myfunc(), false);
</script>

但是有问题..这不适用于点击(当用户点击#player时),这工作当用户加载页面(onload)而我不需要时,我需要点击启动功能... 问题在哪里?

3 个答案:

答案 0 :(得分:2)

首先,您似乎缺少jQuery选择器中的#字符(我假设它是一个ID选择器,因为您还使用getElementById给出了一个示例),所以它当前查找名为player的元素,而不是ID为“player”的元素。

其次,当您将myfunc函数传递给click函数时,您不希望执行该函数。相反,你想传递对函数的引用(注意缺少括号):

$("#player").click(myfunc);

对于您的第二个示例也是如此,但您使用getElementById时没有使用#字符传递字符串是正确的:

document.getElementById('player').addEventListener('click', myfunc, false);

答案 1 :(得分:0)

您需要发送function references

<script type="text/javascript">
    $("#player").click(myfunc);
</script>


<script type="text/javascript">
    document.getElementById('player').addEventListener('click', myfunc, false);
</script>

当您$("#player").click(myfunc());时,您实际上正在执行myfunc。 @Paul指出你也错过了选择器的jQuery id标识符。

答案 2 :(得分:0)

你做错的是你没有将该函数作为对jQuery click方法的引用传递,而是执行它。

$("player").click(myfunc());替换为$("player").click(myfunc);,一切都应按预期工作。这同样适用于您的第二个例子。