gpt4 book ai didi

javascript - 将带有事件委托(delegate)的事件监听器附加到 Jupyter 笔记本?

转载 作者:行者123 更新时间:2023-12-03 04:50:52 24 4
gpt4 key购买 nike

我正在尝试将事件附加到 Jupyter 笔记本变量(用于一些实验):

$( "#notebook-container").on( "dblclick", ".cm-variable", function( event ) {alert("hi"); });

由于 Jupyter 笔记本变量不断刷新等,我认为将事件处理程序附加到所有变量的最佳方法是通过 jquery 事件委托(delegate):https://learn.jquery.com/events/event-delegation/

“事件委托(delegate)允许我们将单个事件监听器附加到父元素,该事件监听器将为匹配选择器的所有后代触发,无论这些后代现在存在还是将来添加。”

所以我觉得这是正确的选择,但是,如果我将上面共享的代码行粘贴到 js 控制台中,我不会获得所需的效果。

我想知道执行此操作的正确方法是什么,您可以在此处访问实时 jupyter 笔记本:https://try.jupyter.org/

最佳答案

基于this答案,以下是如何使用 mousedown/mouseup 模拟双击(mouseup 可能更好,因为单击是在用户抬起鼠标后触发的,而不是在用户第一次按下鼠标时触发的)

var clicks = 0, delay = 400;
$("#notebook-container").on("mouseup", ".cm-variable", function(event) {
event.preventDefault();
clicks++;

setTimeout(function() {
clicks = 0;
}, delay);

if (clicks === 2) {
clicks = 0;
alert("hi");
return;
}
});

关于javascript - 将带有事件委托(delegate)的事件监听器附加到 Jupyter 笔记本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42662251/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com