我的网页上的链接中包含以下代码:
<a href="javascript:$('#comment_form').toggle('normal')" title="Comment on this post">
这会生成一个应该弹出隐藏表单的链接。它适用于Safari,但在Firefox中,我只得到一个几乎为空的页面,只有以下文字:
[object Object]
我确定这与jQuery函数返回的值有关,但我不确定如何修复对JavaScript函数的调用,因此它也适用于Firefox。
答案 0 :(得分:21)
为了爱...
<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。
如果您像这样在HTML中嵌入JavaScript,那么:
答案 1 :(得分:4)
尝试:
<a href="javascript:void($('#comment_form').toggle('normal'))" title="Comment on this post">
在void()
中包含脚本将阻止浏览器显示执行结果。
<强>更新强>
我直接回答了原始问题,解决方案需要花费最少的精力。正如在其他一些答案中提到的那样,我个人会将我的标记和JavaScript分开并动态添加onclick
处理程序,而不是将脚本嵌入href
属性中。
答案 2 :(得分:2)
尝试将href中的内容移动到onclick上。通常,您应该避免在href属性中使用JavaScript代码。
答案 3 :(得分:0)
使用:
<a href="http://full-url-to-directory/page#comment_form"
onclick="$('#comment_form').toggle('normal');return false;"
title="Comment on this post">
虽然您需要在服务器上执行某些操作,以便在通过请求获得对comment_form元素的引用时,默认情况下它是可见的。这将允许(此部分)您的页面无法启用JavaScript。