为什么在Firefox中调用这个jQuery函数失败?

我的网页上的链接中有以下代码行:

<a href="javascript:$('#comment_form').toggle('normal')" title="Comment on this post">

这会产生一个应该弹出一个隐藏窗体的链接。 它适用于Safari,但在Firefox中,我只是得到一个几乎空白的页面,只有以下文本:

[object Object]

我确信这与jQuery函数返回的值有关,但我不确定如何修复JavaScript函数的调用,因此它也适用于Firefox。


为了...的爱...

<script type='text/javascript'>
jQuery(function($){   # Document ready, access $ as jQuery in this scope
    $("a#comment").click(function(){  # bind a click event on the A like with ID='comment'
         $('#comment_form').toggleClass('normal');  # Toggle the class on the ID comment form
         return false;  # stop the href from being followed. 
    }); 
});
</script>
....
<a id="comment" href="/you_need_javascript_sorry.html" title="Comment on this post">
   [Comment]
</a>

请不要像在HTML中那样嵌入JavaScript。

如果您以这种方式嵌入JavaScript,您可以:

  • 制造凌乱的代码。
  • 像你刚刚用黑客来解决它一样有奇怪的问题
  • 尝试中间点击链接的用户将无处发送。
  • 维护散布在页面链接中的代码的可执行部分将以失败告终。
  • 当用户没有javascript时不要优雅地降级
  • 当你开始需要做超过2层的商店报价时,会变得有问题。

  • 尝试:

    <a href="javascript:void($('#comment_form').toggle('normal'))" title="Comment on this post">
    

    将该脚本包含在void()中将禁止浏览器显示执行结果。


    更新

    我直接回答了原来的问题,解决方案将花费最少的精力。 正如其中一些其他答案中提到的,我个人会将我的标记和JavaScript分开,并动态添加onclick处理程序,而不是将脚本嵌入到href属性中。


    尝试将href中的内容移至onclick。 一般来说,你应该避免在href属性中使用JavaScript代码。

    链接地址: http://www.djcxy.com/p/71515.html

    上一篇: Why does the call to this jQuery function fail in Firefox?

    下一篇: Can I use both REST and SOAP in an Android application?