2

我很困惑为什么 Twitter Bootstrap 不能在 Internet Explorer 8 或 9 中运行。它在包括 Safari、Firefox 和 Chrome 在内的所有其他浏览器上运行良好。我一直在通过更高版本的 Internet Explorer 调试代码,我发现了这个错误: SCRIPT5009: '$' is undefined。这是它指向的代码:

$('#myTab a').click(function (e) {
e.preventDefault();
$(this).tab('show');
})

它说这是第一行,第一个字符。它允许用户单击下拉菜单,但它混乱且不可读。我正在使用标准的 Bootstrap javascript 文件。任何帮助将不胜感激,如果我应该提供更多代码,请告诉我。

以下是该页面的源代码:

<head>
<script>
jQuery('#myTab a').click(function (e) {
e.preventDefault();
jQuery(this).tab('show');
})
</script>
<script src="_internal/js/jquery.js" type="text/javascript" ></script>
<script src="http://platform.twitter.com/widgets.js" type="text/javascript" ></script> 
<script src="_internal/js/bootstrap.js" type="text/javascript" ></script>
<script src="_internal/js/bootstrap-transition.js" type="text/javascript" ></script>
<script src="_internal/js/bootstrap.min.js" type="text/javascript" ></script> 
<script src="_internal/js/bootstrap-tab.js" type="text/javascript" ></script> 

<link href="_internal/css/bootstrap.css" rel="stylesheet" type="text/css" />
<link href="_internal/css/style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-parent="#accordion2" data-toggle="collapse" 
href = "#collapseFive">
    Title goes here
  </a>
</div>
<div class="accordion-body collapse" id="collapseFive" style="height: 0px;">
<div class="accordion-inner">
<table cellpadding="15" summary="table">
<tbody cellpadding="4">
<tr class="table-row">
<td width="250">Text</td>
<td width="250">Text</td>
<td width="200">Text</td>
</tr>
<tr>
<td width="250"><a href="link" title="title">title</a></td>
<td width="250">text/td>
<td width="200">text</td>
</tr>
<tr>
<td width="250"><a href="link">title</a></td>
<td width="250">text</td>
<td width="200">text</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</body>
4

3 回答 3

1

您可能在包含 jquery之前运行/声明此函数。当您没有将函数包装到 adocument.ready()中时,在执行点也$没有jQuery定义。

人们经常忘记这一点,当他们复制粘贴引导主页 html 或示例时,然后开始按照他们习惯的方式编写 jquery 代码 - 因为 jquery 包含在<head>而不是之前</body>

于 2013-04-05T16:17:40.327 回答
1

这应该使事情正常进行。

<script type="text/javascript">
 $.noConflict(); //Case sensitive
</script>
于 2013-08-17T11:37:06.587 回答
1

使用jQuery()而不是$(). 我不知道为什么 jQuery 没有加载$()选择器,但前几天我遇到了这样的问题,并更改了所有$()选择器以jQuery()修复它。

于 2013-04-05T15:50:44.183 回答