2013-04-27 3 views
0

Есть ли в jQuery какое-либо событие типа "onBeforeSomeEvent"?jQuery- У нас есть что-то вроде «OnBeforeSomeEvent»?

Для Ex,

<input type='button' class='confirmdelete' onclick='delete();' value='DELETE' /> 

Теперь я хочу показать пользовательский диалог для подтверждения. (Я не хочу использовать метод подтверждения по умолчанию в JavaScript).

Так что мне нужно что-то вроде,

$('.confirmdelete').onBeforeClick(function() { 
    if(true) //I show the custom dialog here and check some conditions. 
     return true; 
    return false; 
}); 

onclick событие должно сработать, если я получаю «истинный» от onbeforeclick события.

Извините, если я смущаюсь. Может быть как beforeActivate в Аккордеоне.

+0

что именно будет OnBeforeClick делать? –

+0

Я бы попросил подтверждение с помощью своего собственного диалога. Может быть, кнопки «Да» или «Нет» –

+0

. Какой язык программирования вы используете? У вашей страницы есть несколько кнопок удаления? – arulmr

ответ

0

Возможно, .mousedown() может вам помочь.

+0

Сначала я бы предложил диалог, чтобы спросить подтверждение.Помогло ли мероприятие mousedown? –

+0

Я дал ему вторую мысль, и, вероятно, будет больше смысла давать ответ @Dragos Bobolea предложил попробовать. – Francis

0

Добавьте уникальные id к кнопкам удаления.

Попробуйте использовать .click() функциональность jQuery и jQuery UI dialog.

$('.confirmdelete').click(function() { 
    var cur_id = this.id; 
    var buttons = '<div id="dialog' + cur_id + '" title="Confirm" align="center"><input type="button" value="Yes" id="yes' + cur_id + '" /><input type="button" value="No" id="no' + cur_id + '" /></div>' 

    $(this).after(buttons); 
    $("#dialog" + cur_id).dialog(); 

    $("#yes" + cur_id).click(function(){ 
     alert('true - ' + cur_id); 
     //Write your delete code here 
     $(this).parents(".ui-dialog-content").dialog('close'); 
     $("#dialog" + cur_id).remove(); 
    }); 

    $("#no" + cur_id).click(function(){ 
     $(this).parents(".ui-dialog-content").dialog('close'); 
     $("#dialog" + cur_id).remove(); 
    }); 
}); 

Замените оповещение кодом удаления в комментариях. Вот пример: JSFIDDLE

+0

Сначала я бы предложил диалог, чтобы спросить подтверждение onclick. Помогло ли событие mouseover? –

+0

Когда вы хотите показать диалог? Перед щелчком или после нажатия? – arulmr

+0

Это на щелчке. Но метод «delete()» должен вызываться, если я возвращаю true (когда я нажимаю «Да» в диалоговом окне. –

1

Почему бы вам просто не обернуть delete()?

Поместите свою проверку на событие onclick(), и если это правда, удалите ее оттуда.

0

Эта ссылка может помочь вам jQuery delete confirmation box

Там также первый вызвать подтверждение для удаления и после этого события выполняется.

0

Вы можете сделать это:

HTML

<input type='button' class='confirmdelete' value='DELETE' /> 

JS

$('.confirmdelete').click(function() { 
    var del = confirm('Are you sure?'); 
    if (del) { 
     delete(); // Just call your "delete()" method here.. 
     return true; 
    } else { 
     return false; 
    } 
}); 
+0

Мне не нравится использовать метод подтверждения. –

Смежные вопросы