我使用noty插件和梅花购物车jQuery有以下jQuery。第一个代码块正确警告是/否并正确清空购物车。
第二个代码块使用noty正确显示yes / no消息但是它没有返回true / false因此购物车没有清空。
我是jQuery的新手,所以我可能错过了一些明显的东西!任何帮助将不胜感激:
//This works..
emptycart: function () {
if (!confirm('Are you sure you want to empty your cart?')) {
return false;
}
},
//This doesnt work..
emptycart: function () {
confirm.call(this, noty({
text: 'Are you sure you want to empty the cart ?',
buttons: [
{type: 'button green', text: 'Ok', click: function() { return false; } },
{type: 'button pink', text: 'Cancel', click: function() { return true; } }
],
closable: false,
timeout: false
}),
true
);
return false;
},
答案 0 :(得分:1)
好吧,插件正在接收回调,所以当你使用回调时,你必须以异步方式思考。
/**
* @param {function} onConfirm : Receives true or false as argument, depending on the user choice
*/
emptycart: function (onConfirm) {
confirm.call(this, noty({
text: 'Are you sure you want to empty the cart ?',
buttons: [
{
type: 'button green',
text: 'Ok',
click: function() {
//Do other stuff if you want...
onConfirm(true);
}
},
{
type: 'button pink',
text: 'Cancel',
click: function() {
//Do other stuff if you want...
onConfirm(false);
}
}
],
closable: false,
timeout: false
}), true);
}
在上面,您将发送一个回调函数“onConfirm”,当用户点击任一按钮时,它将被调用。该函数将接收一个布尔参数,告知是否单击“确定”或“取消”。