javascript - 我可以应用 .On() 和 jquery .Hide() 来隐藏新添加的内容吗

标签 javascript jquery html ajax

我正在开发一个网络应用程序,我想删除所有 <a>有“问题”这个词的。所以我写了以下脚本:-

<script>
$( document ).ready(function() {

    $('a.ms-pivotControl-surfacedOpt:contains("question")').hide();
});
</script>

现在我得到了这个行为:-

  1. 当页面首次加载时,脚本将能够正确隐藏所有内容。

  2. 但是,如果我单击一个按钮,以基于 Ajax 的方法刷新页面,那么将显示其中包含“问题”的内容(脚本不会产生任何效果)。

所以我认为问题在于脚本将无法理解新添加的内容。我记得在旧的jquery版本中我用来定义.Live()为了让我的脚本保持活跃并理解新添加的内容,那么这在我上面的脚本中可能吗?

最佳答案

on() 和已弃用的 live() 仅用于事件委托(delegate),不适用于 DOM 操作或插件初始化。

当你需要操作新插入的html,或者初始化它上面的插件时,没有办法委托(delegate)它,你需要使用ajax的回调来完成它。

使用最简单的ajax方法的示例load()

$('#container').load('somefile.html',function(){
   // new html exists, "this" is initial selector element
   $(this).find('.someClass').hide();    
});

关于javascript - 我可以应用 .On() 和 jquery .Hide() 来隐藏新添加的内容吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31944498/

相关文章:

javascript - 独立选择 jquery 选择器找到的每个项目,对它们运行一个函数 'on load,' 可以这么说

javascript - 比较嵌套对象值

javascript - jQuery Selector 获取ID末尾的ID

jquery - 在鼠标悬停和鼠标移出时更改 div 元素文本的文本颜色

html - Angular 中的字符串资源

JavaScript 未从地址栏运行

javascript - Css 类设计不适用于 append 元素

jquery - Ratyrate 星星未在生产中加载(heroku)

html - 溢出隐藏我的图像

html - 关键帧功能无法正常工作