私はJavaScriptでいくつかの機能を持つクラスを持っています。 2人はボタンのテキストとそのonclickイベントを変更することになっています。私は自分でそれをやろうとしましたが、私は循環参照問題に挑戦しています。javascriptのクリックイベントを使用した循環参照
はクラスの私の機能に従ってください...私は私が「でpreventDefault()」のようなものを使用しなければならないと考えているが、私はそれを使用することができませんでした:
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
これは、1つのAPIでレンダリングされていたため、リンクにイベントを追加する方法がわかりませんでした。だから、私はonclickイベントを追加したので、私はそれを変更しようとしました。しかし、皆さんが言っているように、それは悪い考えでした。私はJSには新しく、まだ良い方法と悪い方法を見つけようとしています。フィードバックありがとう – mk2