0

WordPressを使用して、Jqueryから送信されたajaxリクエストを停止し、追加のデータを追加して再送信しようとしています。

その仕組みは次のとおりです。

  • ユーザーが送信ボタンをクリックします。

  • Wordpressがajaxリクエストを送信します

  • 次のように使用してグローバルbeforeSend関数を設定しました.ajaxSetup

    $.ajaxSetup( {beforeSend: monitorRequests } );

  • wordpressがリクエストを送信すると、別のajaxリクエストを送信する別の関数を呼び出すmy関数によってインターセプトされ、monitorRequests'はfalseを返し、元のajaxリクエストをキャンセルします。

  • 私自身のajaxリクエストが問題なく送信されます。

ただし、ここに問題があります。これを1回行った後、ユーザーが送信ボタンをもう一度クリックしても、wordpressのクリックハンドラーは呼び出されません。これがなぜなのか、これがajaxリクエストがキャンセルされたことと関係があるのか​​どうか疑問に思います。または他に何か?クリックハンドラーが引き続き呼び出されるようにするにはどうすればよいですか?

4

2 に答える 2

2

それを理解すると、Wordpressはajaxリクエスト中にボタンを無効にしますが、wordpressのコールバックが呼び出されることはないため、ボタンは無効のままです。

于 2012-12-28T03:47:32.593 に答える
0

$ .ajaxSetupは、ページ内のajax呼び出しにグローバルに影響します。WPプラグインに実装されているAJAXの数と、それぞれのカスタムがどのように実装されているかはわかりません。

スコープを特定の要素に絞り込んでみてください。あなたは使用することができます

$('.submit').bind('click', function(){ /* your fn */ }); 
//You can have many 'click' binding eg..
$('.submit').bind('click', function(){ /* another */ }); 
$('.submit').bind('click', function(){ /* yet another */ }); 

スクリプトを既存のスクリプトの前に挿入します。関数が最初に呼び出されます。

于 2012-12-28T03:58:30.730 に答える