我正在处理一个Web应用程序,我想删除所有带有“问题”一词的<a>
。所以我写下面的脚本: -
<script>
$( document ).ready(function() {
$('a.ms-pivotControl-surfacedOpt:contains("question")').hide();
});
</script>
现在我有了这个行为: -
首次加载页面时,脚本将能够正确隐藏所有内容。
但如果我点击一个按钮,它将以基于Ajax的方式刷新页面,那么将显示其中包含“问题”的内容(该脚本不会产生任何影响)。
所以我认为问题是脚本无法理解新添加的内容。我记得在旧的jquery版本中我用来定义.Live()
以保持我的脚本生效并理解新添加的内容,所以这可能在我上面的脚本中吗?
答案 0 :(得分:1)
on()
和已弃用的live()
仅用于事件委派,不适用于DOM操作或插件初始化。
当你需要操作新插入的html或在其上初始化插件时,没有办法委托它,你需要使用ajax的回调来做它。
使用最简单的ajax方法load()
$('#container').load('somefile.html',function(){
// new html exists, "this" is initial selector element
$(this).find('.someClass').hide();
});
答案 1 :(得分:1)
在ajax的成功处理程序中,在处理后添加以下行:
$('a.ms-pivotControl-surfacedOpt:contains("question")').hide();