ボタンクリック機能に基づいてウィジェットを追加または削除しようとしています。それは機能しますが、関数が呼び出されると、HTMLページのボタンクリックだけでなく、マウスクリックでコードが呼び出されるという奇妙なことをします。したがって、html ページの削除ボタンをクリックすると、そのウィジェットは削除されますが、(ボタンではなく) 他のウィジェットをクリックすると、そのウィジェットは削除されます。マウスのクリックではなく、htmlボタンのクリックで呼び出される関数のみが必要です。ボタンがページ上の何かを初期化して、マウスのクリックで削除機能を呼び出すようなものです。なぜこれが起こっているのか、どうすれば修正できるのか、誰でも説明できますか? 以下の私のコード:
function deleteWidget() {
var gridster = $('.gridster ul').gridster().data('gridster');
$(document).on( "click", ".gridster ul li", function() {
$(this).addClass("activ");
gridster.remove_widget($('.activ'));
});
}
function addWidget() {
var gridster = $(".gridster ul").gridster().data('gridster');
$(document).on("click", ".gridster ul li", function() {
gridster.add_widget('<li class="gs_w">The HTML of the widget...</li>', 2, 1);
});
}
<li data-row="1" data-col="4" data-sizex="1" data-sizey="1" class="gs_w"><button onclick="addWidget()" style="float: right;">+</button><h3>4</h3><span class="gs-resize-handle gs-resize-handle-both"></span></li>
<li data-row="1" data-col="6" data-sizex="1" data-sizey="1" class="gs_w"><button onclick="deleteWidget()"style="float: right;">-</button><h3>6</h3></li>
助けてくれてありがとう!