-2

チェックボックスのクリックに基づいてdivを非表示/表示します。jsFiddle で動作しますが、私のサイトでは動作しません。何か案は?

私が探しているのは、複数の支払い方法 (CC、Paypal など) を用意することです。チェックした方法に基づいて、その方法に関連する支払い情報を表示します。

関連する jsFiddle リンクは次のとおりです。

http://jsfiddle.net/mxRCz/88/

私のJSは:

$('#CCMethod').change(function(){
  if (this.checked) {
    $('#CCPay').fadeIn('slow');
  } else {
    $('#CCPay').fadeOut('slow');
  }                   
});

私のサイトのステージング エリア: https://rsatestamls.kaliocommerce.com:444/checkout.aspx

4

3 に答える 3

2

それはあなたのスクリプトだからです

  $('#CCMethod').change(function(){
      if ($(this).is(':checked')) {
        $('#CCPay').fadeIn('slow');
      } else {
        $('#CCPay').fadeOut('slow');
      }                   
    });

#CCMethodが宣言される前に実行されます。doc-ready でラップします。

$(function() {
    ('#CCMethod').change(function(){
      if ($(this).is(':checked')) {
        $('#CCPay').fadeIn('slow');
      } else {
        $('#CCPay').fadeOut('slow');
      }                   
    });
 });
于 2013-09-16T19:16:19.420 に答える
1

click変更の代わりにイベントを使用することをお勧めしますchange。古い IE ではバグがあります (jQuery はおそらくこのバグを処理しますが、とにかく良い習慣です)。それでclick、あなたのために働くかどうか試してください。

IE<9 を気にしない場合は、:checkedpseudoselector を見てください。このオプションは JavaScript を必要としません。こちらをご覧ください: http://jsfiddle.net/y9cQD/ (show/hide アニメーションは 経由で追加できますtransition)

PS は J Torres からの回答に気づきました - 原因である可能性があります。

于 2013-09-16T19:20:17.007 に答える
-1

行を変更します。

if (this.checked) {

このため:

if ($(this).is(':checked')) {

チェックボックスがチェックされているかどうかを確認するには、' :checked ' jQuery セレクターを使用する必要があります。

于 2013-09-16T19:02:09.930 に答える