私はかなりの時間このトピックを苦労しており、クリックすることはありません!タイマーと投稿の間にオブジェクトを渡す(匿名関数)
&.post
(WordPress処理済みAJAX)リクエストにオブジェクトを渡す必要がありますが、通常の変数を使用して正しく処理する方法がわかりません。その代わりに、私は$(document)を呼び出してそれをDOM要素(非常に醜いと遅い)を繰り返し実行する必要があります。
$(document).find('#sections_title').val() request
を代わりに使用して、ポストデータにタイトル変数をすべて渡すことができるように、このコードを修正する方法はありますか?
これを正しく行う方法を説明してください。
(function ($) {
var title = $('#sections_title');
var timeout = 2000;
var delay = (function() {
var timer = 0;
return function (callback, ms) {
clearTimeout(timer);
timer = setTimeout(callback, ms);
};
})();
title.keyup(function() {
// i would like to have variable here, that grabs the $(this).val()
// and use this variable to pass to the data
// var value = .......
delay(function() {
$.post(
ajaxurl,
{
'action': 'add_foobar',
'data': $(document).find('#sections_title').val()
// instead I would like:
// 'data': value
},
function(response){
alert('The server responded: ' + response);
}
);
}, timeout);
})();
})(jQuery);
これは私が使用したものです。しかし、私は1つの質問があります、なぜあなたはオブジェクトにテキストを変換するのですか?バインドで 'this'を渡し、delay関数内からjqueryオブジェクト全体を抽出しました。 – HelpNeeder
@HelpNeederこれもうまくいくはずですが、値が必要なので、要素またはjqueryオブジェクトの参照を作成したくありませんでした。このオブジェクトにStringプロトタイプのメンバーを持たせたくないので、値をObjectに変換しました。ボクシングのためだけに –
ああ!まあ、私は必要とするだけの状態をしました。私は値を渡す他の方法にも感謝します。どうもありがとうございます! – HelpNeeder