Sie müssen benannte Funktionen verwenden.
Auch die click
Variable muss außerhalb des Handlers sein, um zu erhöhen.
var click_count = 0;
function myClick(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', myClick);
}
}
// to add
canvas.addEventListener('click', myClick);
EDIT: Sie rund um die click_counter
Variable wie diese schließen konnte:
var myClick = (function(click_count) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', handler);
}
};
return handler;
})(0);
// to add
canvas.addEventListener('click', myClick);
diese Weise können Sie den Zähler über mehrere Elemente erhöhen können.
Wenn Sie nicht wollen, dass, und wollen jedes einen eigenen Zähler haben, dann dies tun:
var myClick = function(click_count) {
var handler = function(event) {
click_count++;
if(click_count == 50) {
// to remove
canvas.removeEventListener('click', handler);
}
};
return handler;
};
// to add
canvas.addEventListener('click', myClick(0));
EDIT:Ich hatte vergessen, den Handler zu nennen zurückgegeben in den letzten zwei Versionen. Fest.
trivial, aber für die zukünftigen Referenzen 'if (klicken == 50) {' 'sein soll, wenn (klicken === 50)' oder 'if (klicken> = 50)' - sie werden nicht das ändern Ausgabe, aber aus Gründen der Vernunft machen diese Kontrollen mehr Sinn. – rlemon
Gute Frage ... Wie entferne ich es, wenn ich keinen Zugriff auf den Inhalt habe? Ich möchte Popups für Onclick auf Schaltflächen mit Greymonkey für andere Websites entfernen, aber wenn ich die Funktion nicht namentlich nennen kann, scheint ich keine Möglichkeit zu finden, es zu entfernen. – JasonXA