每次刷新页面后,事件侦听器复合

时间:2016-07-19 15:55:24

标签: javascript contextmenu event-listener clicklistener

因此,我使用本教程为某些图表构建自定义右键菜单:https://www.sitepoint.com/building-custom-right-click-context-menu-javascript/

它工作得很好,但我对听众有一个问题。具体来说,当调用contextListeners和clickListeners函数时,在页面加载时会添加事件侦听器。但是,在我的应用程序中,我有一个按钮,它重新绘制这些图形并重新加载自定义右键单击菜单所附加的页面,每次都会创建新的侦听器。因此,如果我加载两个不同的图形,则与右键菜单相关联的函数被调用两次,如果我加载三次,则调用三次。这是继续被调用的函数,并不断添加监听器

function contextListener() {
                        document.addEventListener("contextmenu", function(e) {
                            taskItemInContext = clickInsideElement(e, taskItemClassName);
                            if (taskItemInContext) {
                                e.preventDefault();
                                toggleMenuOn();
                                positionMenu(e);
                            } else {
                                taskItemInContext = null;
                                toggleMenuOff();
                            }
                        });
                    }

在后来的一个函数中我尝试过:

document.removeEventListener("contextmenu", function(e) {
                            console.log("removed");
                        });

但这似乎没有办法。

1 个答案:

答案 0 :(得分:1)

我不明白你的问题,但你可以试试这个:

for k, v in d.iteritems():
    d[k] = v[::-1]

df = pd.DataFrame.from_dict(d, orient='index').T.set_index('Date').sort_index(1).sort_index().astype(float)