Ich möchte nur wissen, ob es eine gute Übung ist, einen Click-Event-Listener in einer Funktion wie im folgenden Beispiel zu haben. (Versuchen Sie nicht zu verstehen, was der Code tut, ich wollte nur ein Beispiel für eine Situation zeigen, wo ein Click-Ereignis in einer Funktion)Ist es eine gute Übung, einen Ereignis-Listener innerhalb einer Funktion hinzuzufügen, die Parameter enthält?
function someFn(classClickedBtn, popupId) {
$(classClickedBtn).click(function(e) {
e.preventDefault();
var active = "active";
var mainClass = ".dialogBox";
if ($(popupId).hasClass(active)) {
$(popupId).removeClass(active);
}else{
for (var i = 0; i< $(mainClass).length; i++) {
if ($(mainClass).hasClass("active")) {
$(mainClass).removeClass("active"); } }
$(popupId).addClass(active);
}
});
}
someFn(".btn1", "#popup");
someFn(".btn2", "#popup");
Es ist nicht falsch, aber es kann zu Fehlern führen leicht. Ich würde '$ (triggerBtnClass) .off (" click.namespace ") vorschlagen on (" click.namespace ", function (e) {...});' um sicherzustellen, dass selbst wenn Sie die Funktion wiederholt aufrufen, Es wird nur ein Ereignis-Listener hinzugefügt. –