У меня есть класс в JavaScript, который имеет некоторые функции. Два из них должны изменить текст кнопки и ее событие onclick. Я попытался сделать это сам, но я столкнулся с круглой проблемой. Я считаю, что я должен использовать что-то вроде «preventDefault()», но я не мог использовать его ...Циркулярная ссылка с использованием события javascript click
Следуйте свои функции класса:
this.add_person = function(row, btn) {
$(btn).parent().parent().addClass("selected_row");
$(btn).text("-");
$(btn).attr("onclick", function(e) {
//e.preventDefault();
$.adfg.tabs.del_person(row, btn);
});
}
this.del_person = function(row, btn) {
$(btn).parent().parent().removeClass("selected_row");
$(btn).text("+");
$(btn).attr("onclick", function() {
//$.adfg.tabs.add_person(row, btn); it starts to call the other function and the circular reference to the functions starts...
});
}
А вот кнопка
'<a class="btn btn-info btn-sm" onclick=$.adfg.tabs.add_person(' + meta.row + ',this)>' + '+' + '</a>'
Почему вы используете .attr(), чтобы связать свои события? – n00dl3
Почему вы меняете атрибут onclick вместо прикрепления и удаления обработчиков событий? – SpoonMeiser
Ну, я не знал, как добавить событие в ссылку, потому что это был рендеринг одним API. Итак, я добавил событие onclick, и именно поэтому я попытался его изменить. Но, как вы, ребята, говорите, что это была плохая идея. Я новичок в JS, и я все еще пытаюсь понять хорошие и плохие подходы. Спасибо за отзыв – mk2