如何覆盖javascript / jquery中的默认确认

时间:2012-04-17 01:09:23

标签: javascript jquery

好的,我正在尝试为自定义确认框实现此插件,但就返回值而言,我有点迷失。这是原始的:

jQuery("a.confirm").click( function() { 

if ( confirm( '<?php _e( 'Are you sure?' ) ?>' ) ) return true; else return false;

});

这就是我想要实现的:

$("a.confirm").click(function(){

    var elem = $(this).closest('.item');

    $.confirm({
        'title'     : 'Delete Confirmation',
        'message'   : 'You are about to delete this item. <br />It cannot be restored at a later time! Continue?',
        'buttons'   : {
            'Yes'   : {
                'class' : 'blue',
                'action': function(){
                    elem.slideUp();
                }
            },
            'No'    : {
                'class' : 'gray',
                'action': function(){}  // Nothing to do in this case. You can as well omit the action property.
            }
        }
    });

实际上我只需要让click事件识别第二个而不是第一个,然后正确返回。现在,如果你点击,我得到原始(浏览器默认值),然后我得到第二个。我认为“if声明”是什么让我失望。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

首先,jQuery click方法返回一个jQuery对象。它不会返回您在传递给.click()的匿名函数中返回的任何内容。

其次,if语句有语法错误。它应该写成这样:

if ( confirm( "<?php _e( 'Are you sure?' ) ?>" ) ){
    return true;
} else {
    return false;
}