我们在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;
});
如果我从onbeforeclick事件中获得'true',则onclick
事件应该触发。
抱歉,如果我感到困惑。可能就像手风琴中的beforeActivate
一样。
答案 0 :(得分:1)
为什么不直接包装delete()?
将你的验证放在onclick()事件上,如果是,则从那里删除它。
答案 1 :(得分:0)
也许,.mousedown()可能对您有帮助。
答案 2 :(得分:0)
将唯一id
添加到删除按钮。
尝试使用jQuery和.click()的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
答案 3 :(得分:0)
此链接可以帮助您jQuery delete confirmation box
还会先触发确认删除,然后执行该事件。
答案 4 :(得分: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;
}
});