2011-07-04 7 views
0

私は現在、この選択されたリストの最初のクリックイベントに対してこのjqueryをトリガーしました。jQuery one( 'click')イベントをページ読み込みのバックグラウンドで読み込むにはどうすればいいですか?

誰かが選択リストを最初にクリックすると、jQueryが起動され、完了するまでに数秒かかり、ユーザーの準備が整います。

ページが読み込まれている間(またはすぐに)バックグラウンドで機能するように機能を変更するにはどうすればよいですか?選択/プルダウンメニュー(#my_select)をクリックする前に、ユーザーに準備が整えられていることを確認してください。

$('#my_select').one('click',function(){ 
     var myList = $(this); 
     //myList.addClass("disabled"); 
     $('#my_select option').each(function(){ 
     var option = $(this); 
     option.attr("disabled","disabled"); 
      $.get('<?php echo get_bloginfo('template_directory') ?>/getStyle.php',{option: $(this).val()},function(response) 
      { 
       if (response=='true'){option.attr("disabled","");}else{option.addClass("disabled");} 
      }); 
     }); 
     //myList.attr("disabled",""); 
    }); 

答えて

0
$(document).ready(function(){ 
var myList = $(this);myList.attr("disabled","disabled"); 
      $.get 
      (
       '<?php echo get_bloginfo('template_directory') ?>/getTemplates.php',function(response) 
       { 
        myList.attr("disabled",""); 
       } 
      ); 

}); 

使用$(ドキュメント).ready(); domが完全にロードされた後にスクリプトを実行する。

は、ページのロード一度#my_selectのクリックイベントをトリガし、それは場合に発生しないように、イベントのバインドを解除します代替ソリューション

$(document).ready(function() { 
    $('#my_select').trigger('click').unbind('click'); 
}); 

としてhttp://api.jquery.com/ready/

0

クイック&汚い回避策を参照してください。誰かが実際にそれを 'クリック'しています。

適切な方法は、イベントではなくスタンドアロンの関数としてすべてのものをdoc.readyに入れることです。

+0

ありがとうTrebor。私は何かが読み込まれる前に、ページがちょっとストールしているように見えます。ページが完全に読み込まれてから数秒後に処理が進まないことを確認するために、アクションを少し遅らせる方法はありますか? –

+0

$(document).readyを$(window).loadに変更し、それが役立つかどうか確認してください。 – Treborbob

関連する問題