0

名前空間ファイルにある設定のjqueryバインドを作成しようとしています

私の名前空間設定は次のようなものです:

abc.settings = {
   saveBtnId : "#saveitem",
   cancelBtnId : "#cancelItem"
};

そして、私はこれを試しています:

   $(abc.settings.saveBtnId , abc.settings.cancelBtnId).bind("click", function(e) {
             e.preventDefault();
             var type = $(this).attr("data-id");
             alert(type);
   });

問題は、(予想どおり) エラーが発生しないことですが、CDN の最新の jquery を使用しているため、バインディングが発生しません。

私がここで少し足が不自由な場合は、許していただく必要があります。

4

2 に答える 2

2

これを試して:

$(abc.settings.saveBtnId + "," + abc.settings.cancelBtnId).bind(...

必要なのは、 と評価されるセレクターである"#saveitem,#cancelItem"ため、変数をコンマで連結する必要があります。

現在行っていることは、2 番目の文字列ではなく、DOM 要素、ドキュメント、または jQuery オブジェクトであるはず$()$(selector, context)構文を除いて、 2 つの個別のパラメーターを渡すことです。contextパラメータの詳細については、 doco$()を参照してください。

于 2012-08-27T23:07:11.297 に答える
1

これはそれを行う必要があります:

$.each(['saveBtnId', 'cancelBtnId'], function(v, i) {
    $(abc.settings[v]).on('click', function() {
       ...
    });
});

文字列の配列 (別の変数に事前に割り当てられている可能性があります) を使用し、名前空間から適切なプロパティを見つけて、クリック ハンドラーをバインドします。

または、名前空間付きのプロパティを保持するには:

$.each([abc.settings.saveBtnId, abc.settings.cancelBtnId], function() {
    $(this).on('click', function() {
       ...
    });
});
于 2012-08-27T23:14:23.387 に答える