我正在使用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();
});
它显示了样式按钮和所有内容,但是当我点击确定它没有执行上述功能时,没有任何反应。
所以我把它改写成
$(".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);
}
);
答案 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中阅读一些关于回调模式的内容。这很常见,理解它会帮助你使用这个插件和许多其他插件。