针对javascript的样式警报系统

时间:2012-07-31 01:51:50

标签: javascript

我正在使用smoke.js,它允许设置经典警报javascript窗口的样式。

您需要做的就是在警报之前放置.smoke即。 smoke.confirm()

我遇到的问题是ok / cancel回调,它对我不起作用。

这是网站显示的示例。

`你可以像使用js alert()一样实现这些......只需要“冒烟”。在它面前。

然而,确认()替换需要稍微改变一下:

smoke.confirm('You are about to destroy everything. Are you sure?',function(e){
    if (e){
        smoke.alert('OK pressed');
    }else{
        smoke.alert('CANCEL pressed');
    }
});

和我的代码是;

$(".upb_del_bookmark").click( function() {
        if(smoke.confirm(delete_message)) {
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });

它显示了样式按钮和所有内容,但是当我点击确定它没有执行上述功能时,没有任何反应。

Confirm

所以我把它改写成

$(".upb_del_bookmark").click( function() {
        if(smoke.confirm(delete_message, function(e))) {
            if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }}

但现在当我点击它时甚至没有显示任何内容

我不是程序员,帮助!!!!!

如果您想尝试一下,请使用david:123321登录latinunit.org,然后转到帖子并尝试将其添加到您的收藏夹

更新

我尝试了以下内容,它显示了窗口,但它没有执行该功能;

$(".upb_del_bookmark").click( function() {
        smoke.confirm(delete_message, function(e) {
            if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }})
        return false;
    });

以下是冒烟脚本Link

的js文件

当我点击取消以下节目时;

  

未捕获的TypeError:对象#的属性'回调'不是a   功能线:198   未捕获的TypeError:对象#的属性'回调'不是a   功能线:208

以下是烟雾剧本的那些内容;

finishbuildConfirm: function (e, f, box)
    {
        smoke.listen(
            document.getElementById('confirm-cancel-' + f.newid),
            "click", 
            function () 
            {
                smoke.destroy(f.type, f.newid);
                f.callback(false);
            }
        );

        smoke.listen(
            document.getElementById('confirm-ok-' + f.newid),
            "click", 
            function () 
            {
                smoke.destroy(f.type, f.newid);
                f.callback(true);
            }
        );

1 个答案:

答案 0 :(得分:1)

内置的javascript警报/确认功能是同步的,但事实并非如此。您需要使用javascript回调模式处理确认结果。您将函数传递给smoke.confirm()函数,该函数在您需要响应某个操作时调用。

请参阅以下代码。 smoke.confirm()周围的if已被删除,处理代码包含在传递给smoke.confirm()函数的函数中。

$(".upb_del_bookmark").click( function() {
    smoke.confirm(delete_message, function(e) {
        if(e){
            var post_id = $(this).attr('rel');
            var data = {
                action: 'del_bookmark',
                del_post_id: post_id
            };
            $.post(upb_vars.ajaxurl, data, function(response) {
                $('.bookmark-'+post_id).fadeOut();
                $('.upb_bookmark_control_'+post_id).toggle();
            });
        }
    });
}

我强烈建议您在javascript中阅读一些关于回调模式的内容。这很常见,理解它会帮助你使用这个插件和许多其他插件。