Я хочу предотвратить событие click, но e.stopPropagation()
не работает.
Я пытаюсь написать что-то вроде Jtable. Я использую div как кнопки разбивки на страницы (1), а другой элемент - кнопка удаления.
Мне нужно отключить кнопки разбиения на страницы, когда появляется окно подтверждения удаления. После нажатия del или отменить "Я хочу, чтобы мои кнопки разбиения на страницы снова работали". Есть ли решение?
function deleteit() {
$(".del").click(function() {
$(".divbutton").click(function(e) {
alert(1);
e.stopPropagation();
});
}
$(".deletebtn").click(function() {
deleteit();
});
$(".divbutton").click(function() { // I want to prevent this from click
//ajax send and display data
});
Я знаю, что я должен использовать отключенный ввод вместо div, но мне нужно использовать div. edit: добавьте изображение, чтобы сделать его понятным.
Вместо того, чтобы препятствовать обработчику кликов... удалить зарегистрированный обработчик с помощью .off(), здесь используется имя имен с именами, потому что мы хотим удалить только очень специфический обработчик
function deleteit() {
$(".del").click(function () {
$(".divbutton").off('click.delete')
})
}
$(".deletebtn").click(function () {
deleteit();
});
$(".divbutton").on('click.delete', function () { // I want to prevent this from click
//ajax send and display data
});
Почему ваш код не работает? потому что прекращение распространения будет препятствовать divbutton
события, но в вашем случае оба события регистрируются в divbutton
так что оба они будут активированы, даже если распространение запрещено.
Другой способ - использовать stopImmediatePropagation(), даже если это невозможно, потому что ваше удаление позже регистрирует обработчик, и оно будет выполнено только после вызова первого