我读过的所有内容都更多地引用了使用.live(),. on(),. bind(),. delegate()等添加的事件处理程序。
我之前问了一个可能没有正确反映的问题,所以我投票删除了那个并重新问了一个更简单的问题,我可以做其余的事情,我相信。
有没有办法清除带有预定义类的HTML元素的innerhtml,包括通过AJAX动态加载的类等。
所以每次ajax调用都会出现
<div class="triggerElement">something here...</div>
或页面上的类似内容,我需要将其清空。我想我已正确解释过了。如果没有,请告诉我。
修改
似乎很混乱。 .empty&amp;其他喜欢的东西都行不通。如果你打电话
$(".omButton").empty();
从索引,然后一些其他模块稍后通过AJAX加载同一个类,它不会清空它。如果我首先在页面上有元素,那么调用它,是的它会起作用....
我需要一些基于.live或.delegate的内容,这些内容适用于事后加载的任何内容,因为我已经尝试过.empty和.html,并且对于使用AJAX加载的内容都不起作用。
不知道怎么解释这个。以为这很简单。遗憾!
编辑2 ......
索引包含空函数
$(function(){
$('.omButton').empty();
$ajax... to load "loadedContent"
});
<div class="omButton"></div>
<div id="loadedContent"></div>
ajax返回
json_encode(array('test' => '<div class="omButton">Button Text</div>'));
所以现在索引上的HTML是
<div id="loadedContent"><div class="omButton">Button Text</div></div>
但是由于加载页面时内部div不存在,因此.empty不会影响它。我需要一些我可以放在页面上的负载“监视”它的任何出现(静态或动态)并清空它。
希望有帮助吗?
答案 0 :(得分:5)
尝试使用$.ajaxComplete() - 因为这是在每个ajax请求完成后触发的
$('body').ajaxComplete(function() {
$('.triggerElement').empty();
});
答案 1 :(得分:1)
试试这个。 .empty
$.ajax({
...
complete: function(){
$(elementSelectorForWhatYouWantEmptied).empty();
}
})
或者如果加载的元素动态放置在DOM中,那么您可以使用.live()
。
$(elementThatIsInDOM).on(event, elementSelectorThatIsDynamicallyAdded, function(){
$(elementSelectorForWhatYouWantEmptied).empty();
})
答案 2 :(得分:0)
如果您使用ajax加载内容,并且该内容是内容为
的完整标记<div class="triggerElement">something here...</div>
并且你希望在加载之后empty
该元素,你需要在加载数据时执行的回调中执行该操作。
$.ajax(
....
success: function(data){
$(".omButton").empty();
});