jQuery- ajax関数ではありませんが、要素がajaxを介してロードされた後に何かをします
-
27-09-2019 - |
質問
Ajaxコールからページにロードする要素を監視しようとしています。 ajaxの呼び出しを行うjqueryにアクセスできません。したがって、いくつかの新しいHTMLがページにロードされたら、いくつかの変更を適用したいと思います。
現在、.load()関数を使用しようとしています。
$( '.autosuggest_keyword' ).load(
function()
{
$( this ).val( 'load test' );
}
);
それは何もしていません。私はそれをライブバインディングにしようとさえしましたが、それは本当に意味がありませんでしたが、試してみると思いました。
セレクターは正しいです。
何か案は?
解決 5
元のAjaxコールにアクセスすることができたので、この質問は今や議論の余地があります。しかし、これらの答えの1つが彼らを助けた場合に備えて、私はそれを他の人に見つけるためにそれを残しています。
他のヒント
。ロード() 関数は、AJAX要求を送信し、サーバーからデータを取得し、セレクターの指定された要素を更新するURLを期待します。したがって、URLを渡す必要があります。
$('.autosuggest_keyword').load('/foo');
イタリタルAjaxと何を呼んでいるのか知っていますか?その場合、同じイベントを使用して関数を呼び出すことができます。ただし、Ajaxがロードしているものを変更しようとしている場合、これは混乱を引き起こす可能性があります。
アヒルのパンチは答えかもしれません:
should('duck-punch ajax success handler', function() {
var origAjax = $.ajax;
$.ajax = function(settings) {
if(settings.url === 'the/request/page') {
var origSuccess = settings.success;
settings.success = function(responseHTML) {
origSuccess.call(this, responseHTML);
//apply some changes to html
}
}
origAjax.call(this, settings);
}
});
.loadを呼び出すと、そのイベントハンドラーが、電話をかけているときにセレクターに一致する要素にバインドしています。その後、要素が追加されるため、拘束されることはありません。 。住む 関数は、Currrentに結合することによりこの問題を解決します そして未来 セレクターに一致する要素。あなたが望むのはこのようなものだと思います(テストされていない):
$( '.autosuggest_keyword' ).live('load',
function()
{
$( this ).val( 'load test' );
}
);
所属していません StackOverflow