JavaScript 风格的警报系统

2024-03-29

我在用smoke.js http://ssssnakes.com/smoke/它允许设置经典警报 javascript 窗口的样式。

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

我遇到的问题是确定/取消回调,它对我不起作用。

这是网站显示的示例。

`你可以像使用 jsalert() 一样实现这些......只需输入“smoke”。在它的前面。

然而,confirm() 替换的使用方式需要稍有不同:

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();
            });

它显示了样式按钮和所有内容,但是当我单击“确定”时,它不执行上面的功能,什么也没有发生。

所以我把它重写为

$(".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,然后转到帖子并尝试将其添加到您的收藏夹

Update

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

$(".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;
    });

这是smoke脚本的js文件Link http://latinunit.org/smoke.js

当我点击取消时,显示以下内容;

未捕获的类型错误:对象#的属性“回调”不是 功能线:198条 未捕获的类型错误:对象#的属性“回调”不是 功能线: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);
            }
        );

内置的 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 回调模式的内容。它非常常见,理解它会帮助您使用这个插件和许多其他插件。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JavaScript 风格的警报系统 的相关文章

随机推荐