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>

ラジオ ボタンの 1 つをクリックすると、アラート ボックスが表示されます。ただし、代わりに使用する場合

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

そして、置きます

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

DisplayOrAnalyzeSingleArray.js 内では、ラジオ ボタンの 1 つをクリックしても何も起こりません。ただし、ページがロードされたときに警告ボックスが表示されます

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 に答える