Я пытаюсь добавить и/или удалить виджет на основе функции нажатия кнопки. Это работает, но как только функция вызывается, она делает что-то странное, когда код вызывается при любом щелчке мыши, а не только при нажатии кнопки на странице 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>
Спасибо за любую помощь!