【发布时间】:2023-04-09 06:27:01
【问题描述】:
我目前正在尝试根据触发的“点击”事件调用回调。这种方法是一种退出方式,只有在单击按钮后才可用。
当我在控制台中执行触发命令时,keyup 事件处理程序在触发后按预期工作。
尝试使用以下代码自动执行此过程是行不通的:
let editorSwitchTmce = jQuery( ".wp-editor-tabs .switch-tmce" ),
editorCallback = function() {
tinyMCE.activeEditor.on( "keyup", function () {
console.log( tinyMCE.activeEditor.getContent() );
});
};
editorSwitchTmce.bind("click", function () {
editorCallback();
});
editorSwitchTmce.trigger( "click" );
问题是,在单击之前,activeEditor 为空。那么为什么这不起作用呢?我的意思是我正在触发点击并期望 activeEditor 设置为像我在浏览器控制台中手动设置时一样?
【问题讨论】:
-
不确定我是否理解 - 当“真正的点击”发生时,您是否需要延迟对
editorCallback()的呼叫?即,确保其他代码有时间分配activeEditor? -
通话需要在点击按钮后立即完成。所以你知道什么时候完成?
-
好的 - 你试过了吗?
editorSwitchTmce.bind( "mouseup", .. ) -
事件不是我认为的问题。当我首先触发并添加 on keyup 时,一切正常。
-
另一种选择可能是使用短暂的超时:
editorSwitchTmce.bind( "click", function () { setTimeout(function() { editorCallback(); }, 100); } );
标签: javascript jquery