2

次のコードで登録する「変更」イベントの取得に問題があります

var map = function(){

  function addMapTriggers(){
    $("#map_form select").change(getDataWithinBounds);
  }

 return{
  init: function(){
   getDataWithinBounds();
   addMapTriggers();
  }
 };
}();

そしてjquery document.readyで

$(function(){
  map.init();
});

したがって、最初のデータを取得し、選択の 1 つを変更するたびに、マップ データを再度取得します (getDataWithinBounds が ajax 呼び出しを送信します)。問題は、それが機能しないことです。変更イベントが追加されることはありません。

ただし、コンソールで map.init(); と入力すると、それは機能します。これは奇妙です。どのように違いがあるのか​​ わかりませんか?ここで何が欠けていますか?私はこれをサファリとFirefoxでまったく同じ動作でテストしています

4

3 に答える 3

0

私は今とても恥ずかしい思いをしており、皆様の時間を無駄にしてしまったことをお詫び申し上げます。もちろん、上記のコードは機能します。私がしていることの違いは、私のサイトが jquery selectbox プラグインを使用していることです。これは、選択のように振る舞うクリック イベントで UL を作成することによって選択をスタイルします (私の選択ではありません、私を信じてください)。残念ながら、selectbox コードを適用する前にinit を呼び出していたため、それ自体が select のバインディングを変更していました。selectbox 呼び出しを最初に配置し、次に map.init() を呼び出すと、完全に修正されました。

時間を割いて私を助けてくれた多くの謝罪と感謝(特にSolutionYogi)。

于 2009-07-17T01:32:54.910 に答える
0

なぜこれが好きではないのですか?

function map(){
 return {
  me = this,
  addMapTriggers: function(){
    $("#map_form select").change(getDataWithinBounds);
  },
  init: function(){
   getDataWithinBounds();
   me.addMapTriggers();
  }
 };
}();
于 2009-07-16T17:16:17.620 に答える