0

我在 Debian 7.0.0 上使用 jQuery 2.0.2。

因此,我设置了一组单选按钮。

<table border="1">
<tr>
<th align="center" colspan="2" style="background:orange">Look Up Table</th>
</tr>
<tr align="left">
<td><input type="radio" name="LUT" id="GREY" value="GREY" onclick="EnableNonlinear()" 
    <?php echo $greyLUT ?>/>Gray</td>
<td><input type="radio" name="LUT" id="HOS" value="HOS" onclick="EnableNonlinear()"  
    <?php echo $hosLUT ?>/>Heated Object</td>
</tr>
</table>

如果我按照这段代码

<script type="text/javascript">
jQuery('input[name=LUT]').change(function(){
alert('Radio button clicked');
});
</script>

当我单击其中一个单选按钮时,会出现警报框。但是,如果我改为使用

<script type="text/javascript" src="DisplayOrAnalyzeSingleArray.js"></script>

并放

jQuery('input[name=LUT]').change(function(){
alert('Radio button clicked');
});

在 DisplayOrAnalyzeSingleArray.js 中,当我单击其中一个单选按钮时,什么也没有发生。我有,但是如果我只是输入,当页面加载时会出现警报框

alert('Radio button clicked');

在 DisplayOrAnalyzeSingleArray.js 中。

我对为什么单个警报语句在外部文件中起作用感到困惑,如果我将它放在 html 代码中,jQuery 事件处理程序可以工作,但如果我将它放在外部文件中,事件处理程序不起作用。

我在 Ice Weasel 10.0.12 上使用 Firebug 1.7.3,但控制台上没有出现错误消息。

4

2 回答 2

4

首先确保你在 jquery 之后包含你的脚本 -

<script type="text/javascript" src="http://code.jquery.com/jquery-2.0.2.js"></script>
<script type="text/javascript" src="DisplayOrAnalyzeSingleArray.js"></script>

并将您的代码包装在.ready处理程序中

jQuery(function(){
  jQuery('input[name=LUT]').change(function(){
    alert('Radio button clicked');
  });
});
于 2013-06-16T21:10:02.207 回答
2

我认为你的代码必须是我,

 $(document).ready( function({
    jQuery('input[name=LUT]').change(function(){
    alert('Radio button clicked');
    });
 });

因为,您的代码可能会在包含 .js 文件之前执行。为确保您的代码仅在加载所有 .js 文件后执行,您可以将实际的 javascript 代码包含在这样的.onready()函数中。

于 2013-06-16T21:09:04.783 回答