我有一个包含以下两个div的页面:
<div id="searchResults">
</div>
<div class="postSearchOptions" style="display: none;">
</div>
当通过AJAX调用更新“searchResults”div时,有什么方法可以使“postSearchOptions”div出现?我不控制AJAX调用,我想检测“searchResults”div中的任何更改。
我尝试编写以下JQuery代码,但后来意识到它需要Jquery 1.4而我只有1.3:
$("#searchResults").live("change", function() {
$(".postSearchOptions").css("display", "inline");
});
有没有什么办法可以使用标准JavaScript或Jquery 1.3来捕获searchResults div更改的事件?谢谢!
答案 0 :(得分:1)
如果使用jQuery进行AJAX调用,您可以调用处理全局ajaxComplete
事件并在那里运行代码。
答案 1 :(得分:0)
如果您以编程方式更改innerHTML,我认为onchange事件不会触发。为什么不在收到这些更改时显示Post Search选项,也就是为什么不将它作为ajax成功方法的最后一行包含在内。
HTH
答案 2 :(得分:0)
您可以使用setInterval来观看它,但正如其他人所说,检测ajax回调中的更改会更好。这是一个草图插件看起来像什么“看”节点,就像你正在尝试使用live:
jQuery.fn.watch = function() {
this.each(function() {
var original = $(this).html();
setInterval(function() {
var newHtml = $(this).html();
if (newHtml != original) {
$(this).trigger('change');
original = newHtml;
}
}, 500);
} );
}
答案 3 :(得分:-1)
工作,做....
jQuery.fn.watch = function() {
this.each(function() {
var obj = $(this);
var original = $(this).html();
setInterval(function() {
var newHtml = $(obj).html();
if (newHtml != original) {
$(obj).trigger('change');
original = newHtml;
}
}, 500);
} );
}