2

<select>入力があり、これはそのchangeイベントのコードです。

$(document).on("change", "select[id $= 'Type']", function(){ 
    var id = $(this).attr('id');
    id = id.replace("Question", "");
    id = id.replace("Type", "");
    id = id.replace("Option", "###");
    var split = id.split("###");
    var qno = split[0];
    var ono = split[1];
    setOptionContentInput($(this).val(), qno, ono);
});

これは完全に機能します。

しかし、$(document).ready()関数内で以下のコードを呼び出すと、機能せず、理由がわかりません。

$(document).ready(function() {
  $("select[id $= 'Type']").change();
});

setOptionContentInput()関数は次のとおりです。

function setOptionContentInput(type, qno, ono){
  switch(type) {
    case "<?php echo TEXT_OPTION; ?>":
      $(".image_option_" + qno + "_" + ono).attr('disabled', 'disabled');
      $(".image_option_" + qno + "_" + ono).hide();
      $(".sound_option_" + qno + "_" + ono).attr('disabled', 'disabled');
      $(".sound_option_" + qno + "_" + ono).hide();
      $(".text_option_"  + qno + "_" + ono).removeAttr('disabled');
      $(".text_option_"  + qno + "_" + ono).show(500);
      $(".text_option_"  + qno + "_" + ono).siblings("label").show(500);
      break;

    case "<?php echo IMAGE_OPTION; ?>":
      $(".text_option_"  + qno + "_" + ono).attr('disabled', 'disabled');
      $(".text_option_"  + qno + "_" + ono).hide();
      $(".text_option_"  + qno + "_" + ono).siblings("label").hide();
      $(".sound_option_"  + qno + "_" + ono).attr('disabled', 'disabled');
      $(".sound_option_"  + qno + "_" + ono).hide();
      $(".image_option_"  + qno + "_" + ono).removeAttr('disabled');
      $(".image_option_"  + qno + "_" + ono).show(500);
      break;

    case "<?php echo SOUND_OPTION; ?>":
      $(".text_option_"  + qno + "_" + ono).attr('disabled', 'disabled');
      $(".text_option_"  + qno + "_" + ono).hide();
      $(".text_option_"  + qno + "_" + ono).siblings("label").hide();
      $(".image_option_"  + qno + "_" + ono).attr('disabled', 'disabled');
      $(".image_option_"  + qno + "_" + ono).hide();
      $(".sound_option_"  + qno + "_" + ono).removeAttr('disabled');
      $(".sound_option_"  + qno + "_" + ono).show(500);
      break;

    default:
  }
}

誰か助けてもらえますか?どうも。

4

2 に答える 2

1

これを次のように呼び出してみてください

$(document).ready(function() {

    $("select[id $= 'Type']").change(function(){
        // call the function you want with necessary parameters
    });

});
于 2012-04-16T11:50:31.060 に答える
0

$(document).ready();動作しないが動作する場合は$(window).load();、以前に DOM にエラーがあった (あった...) 可能性があります。

これは、複数の を使用する場合によく発生します$(document).ready();。最初のエラーが発生すると、他のすべてがブロックされる可能性があります。そのため、引き続き使用できます$(window).load();

この問題が発生する次の人のために: JS コンソールを (Webkit 開発ツール、または Firebug などを介して) チェックし、この種のエラーを探して修復し、再試行してください ;)

于 2012-08-28T16:08:27.247 に答える