如何使用原生JS在同一个元素上的另一个事件之前触发一个事件?

我有一个问题 eventListener. 在我的例子中,我使用了一个外部库(jquery.jstree-pre1.0fix2),它可以触发一个新的函数。blur 事件的输入。

我也是这样做的,但是我需要我的事件在库中的事件之前被触发。我找到了一些解决方案,但他们都是使用jQuery。

你有什么想法或代码例子可以帮助我在库中的事件之前触发我的事件吗?

下面是我想在库的事件之前做的事件。

document.getElementById('treeView').addEventListener("change", function (ev) {
    if(ev.target.classList.contains('jstree-rename-input')) {
        var inputRename = ev.target;
        inputRename.addEventListener("blur", function(eve) {
            eve.value = encodeURI(eve.value);
        });
    }
});

解决方案:

如果你不能确保你的代码在jstree之前,那么你可以尝试以下方法–不推荐,但应该可以做到这一点

const tId = setInterval(function() {
  [...document.querySelectorAll('jstree-rename-input')].forEach(
    inp => inp.value=encodeURI(decodeURI(inp).value)) // make sure we do not double encode
  );
},300)

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/25586.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表评论

登录后才能评论