我正在尝试从ajax调用中查看要在页面上加载的元素。我无法访问正在进行ajax调用的jquery。因此,当一些新的html加载到页面上时,我想对它应用一些更改。
我目前正在尝试使用.load()函数:
$( '.autosuggest_keyword' ).load(
function()
{
$( this ).val( 'load test' );
}
);
哪个没做任何事情。我甚至尝试过制作一个实时绑定,这听起来没有意义,但我想我会尝试一下。
选择器是正确的。
有什么想法吗?
答案 0 :(得分:0)
.load()函数需要一个发送AJAX请求的URL,从服务器获取数据并更新选择器中的给定元素。所以你需要传递一个URL:
$('.autosuggest_keyword').load('/foo');
答案 1 :(得分:0)
你知道什么叫theital ajax吗?如果是这样,您可以使用相同的事件调用函数。如果你试图改变ajax正在加载的东西,这可能会引起一些混乱。
答案 2 :(得分:0)
鸭子打孔可能就是答案:
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);
}
});
答案 3 :(得分:0)
当你调用.load时,它会将事件处理程序绑定到与你调用它时选择器匹配的元素。由于之后添加了元素,因此它永远不会被绑定。 .live函数通过绑定到与选择器匹配的currrent 和future 元素来解决此问题。我想你想要的是这样的(未经测试):
$( '.autosuggest_keyword' ).live('load',
function()
{
$( this ).val( 'load test' );
}
);
答案 4 :(得分:0)
我能够访问原始的ajax调用,所以现在这个问题没有实际意义。但是,如果其中一个答案对他们有帮助,我会把它留给其他人找。