2011-10-17 86 views
0

我似乎与其他人一样有相反的问题,我的Javascript在Firefox中不起作用。 Firebug告诉我这个id是未定义的,但它不是,除非FF不能将标签识别为IE/Chrome这样的JavaScript控件的对象?Jquery切换工作在IE/Chrome中,未定义在FF

PHP是这样的:

echo '<a href="javascript:void(0)" onclick="toggle(details_'.$record_details.')">Details</a>'; 
echo '<tr style="display:none" id="details_'.$record_details.'">'; 
echo '<td class="noborder" colspan="7">'; 
echo '<div>'; 
    Bunch of Content Here. 
echo '</div>'; 
echo </td>; 
echo </tr>; 

JavaScript是刚刚

function toggle(id){ 
$(id).toggle();} 

切片在IE和Chrome正确切换,但Firefox返回 “details_0没有定义” 等,为每一个一。

有什么建议吗?它实际上是在通话中崩溃,这很奇怪,因为我在第一行切换中放置了一个Alert,并且它永远不会触发,所以它甚至没有达到那么远。我错过了什么?

谢谢!

+0

您应该始终查看浏览器源代码中的内容,而不是您的服务器端代码。通常会更容易发现您的问题。 – epascarello

回答

2

这样称呼:toggle(\'text in here\')

而在切换函数中调用它是这样的:$("#" + id).toggle();

+0

尝试过。没有帮助。我也这么认为,但是这打破了Chrome和IE。 – DiscontentDisciple

0

它工作的原因是因为某些浏览器实际上创建窗口级变量details_something。所以你传递的是你的tr的引用,而不是字符串值的id。

确保您传递给toggle()的值用引号引起来。并确保您预先配置了#