我可以应用.on()与jquery . hide()来隐藏新添加的内容吗?

Can i apply .On() with jquery .Hide() to be able to hide newly added content

本文关键字:添加 新添加 on 应用 jquery 我可以 hide 隐藏      更新时间:2023-09-26

我正在开发一个web应用程序,我想删除所有具有"问题"一词的<a>。所以我写了下面的脚本:-

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

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

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

  2. ,但如果我点击一个按钮,将刷新页面在一个基于ajax的方法,然后有"问题"里面的内容将被显示(脚本将没有任何效果)。

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

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

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

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

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

在ajax的成功处理程序中,在处理之后添加这一行:

 $('a.ms-pivotControl-surfacedOpt:contains("question")').hide();