Javascript 当元素发生变化时,如何执行函数?(无设定间隔)
我已尝试将脚本配置为根据显示的报告类型(即span元素Javascript 当元素发生变化时,如何执行函数?(无设定间隔),javascript,jquery,Javascript,Jquery,我已尝试将脚本配置为根据显示的报告类型(即span元素.reportReason)自动单击页面上的某些按钮 下面是一个页面的典型外观示例: (我无法链接该页面对报告进行投票,因为玩游戏必须满足一个过度的要求。) 在对一份报告进行投票后,该网页将删除所有当前报告内容,并通过Jquery从另一份报告加载所有数据。在加载报表时(或报表未加载时),它将#reportInfo的所有子div值设置为“-”,并从#reportContent中删除所有内部span类 这是我的脚本的代码: switch
.reportReason
)自动单击页面上的某些按钮
下面是一个页面的典型外观示例:
(我无法链接该页面对报告进行投票,因为玩游戏必须满足一个过度的要求。)
在对一份报告进行投票后,该网页将删除所有当前报告内容,并通过Jquery从另一份报告加载所有数据。在加载报表时(或报表未加载时),它将#reportInfo
的所有子div值设置为“-”,并从#reportContent
中删除所有内部span类
这是我的脚本的代码:
switch ($('.reportReason').text()) {
case "Inappropriate Username":
//This is an INAPPROPRIATE USERNAME report
reportIU();
break;
case "Spamming":
//This is a SPAMMING report
reportSpamming();
break;
case "Leaving":
//This is a LEAVING report
reportLeaving();
break;
case "Multi-accounting":
//This is a MULTI-ACCOUNTING report
reportMulti();
break;
default:
//Report hasn't loaded or report type is 'Other'
break;
}
我想使switch语句在span元素.reportReason
的文本每次更改时执行,而不是在设置的间隔后执行。有什么办法可以做到这一点吗?Tadaa:)
$('#btn')。单击(函数(){
//模拟ajax更改
如果($('div#test').text()!=“a”){
$('div#test')。文本(“a”);
}
} );
$('div#test')。on('domandeinserted',function(){
log('div已更改!');
//做你的变化无常的事
});代码>
分区:
一些随机内容。
如果.reportReason
是一个表单控件,如输入、文本区域、复选框等,那么在事件中访问其数据要比使用span容易得多。表单控件具有专门的事件,如处理文本的更改
和输入
,但这取决于用户交互,而用户交互可能不适用于您的情况(至少以直接方式)
假设文本本身来自您几乎无法控制或无法控制的源,我们将从span.reportReason
开始,确定文本何时插入其中。我建议将来您追踪必要的步骤,以找到文本本身的起源。我相信这是一个好消息
为了监控span.reportReason
发生的更改,我们可以使用。在下面的演示中,将创建一个观察者来检测span.reportReason
内容的任何更改。它将在添加或删除文本时记录更改。
注意:所有具有console.log(…)
语句的行都是您应该调用函数的地方。我并没有试图在开关()中找到这些函数,因此它们被控制台.log替换,这足以证明代码正常工作
演示
代码中有一些部分标记为:“TEST NOT REQUIRED”(测试不需要),这意味着它仅用于演示目的,解决方案本身不需要它。
var tgt=document.querySelector('.reportReason');
var cfg={
属性:false,
儿童名单:是的,
characterData:true
};
var monitor=新的MutationObserver(功能(更改){
更改。forEach(函数(更改){
console.log();
for(设i=0;i //$('.reportReason')。在('change',function(){console.log($(this.text()})
上,$('.reportReason')是什么类型的
是否为输入
,是否为div
,span
-使用
按钮构建一个小示例查看此处了解更多详细信息-@Pilan这是一个div元素。@DanielKrom这只会导致它重复执行函数并暂停网页。我正在寻找只执行切换函数的东西每次.reportReason
的文本更改后,我都会进行一次初始化。我一到家就一定要测试一下。现在回家吧!:D@LordNazo当然,看一看-例如span.bla
allspan
s与classbla
看这个@Pilan就在我的opinion@Emeeus更新你的小提琴(缺少jQuery)-