我很難刪除一個事件監聽器,因爲removeEventListener
只適用於我需要做非命名函數的非任意函數。問題是我不知道如何將chart
變量傳遞給toggleLabels
函數,而不用調用函數,而我這樣做。如何傳遞給事件監聽器函數的變量?
我試過看this question,但沒有答案的工作。
這可能嗎?
var chart = {}; // Big object
labelToggle.addEventListener('click', toggleLabels);
function toggleLabels(chart) {
scope.graph.isLabelsVisible = chart.isLabelsVisible = !chart.isLabelsVisible;
for (i = 0; i < length; i++) {
chart.series[i].isLabelsVisible = !chart.series[i].isLabelsVisible;
chart.series[i].hide();
chart.series[i].show();
};
};
我通常在html的主體中使用事件監聽器,在那裏,你可以直接傳遞參數(例如''onclick ='foo(「toto」)'') – HolyDanna
@HolyDanna這是一種可怕的做法,不幸的是不能這樣做。 – Chrillewoodz
我知道,但我儘量不使用太多的事件監聽器,任何方式。也許這篇文章(http://stackoverflow.com/questions/256754/how-to-pass-arguments-to-addeventlistener-listener-function#256763)可以幫助你找到解決方案 – HolyDanna