我正在使用jQuery插件来显示通知。
所以我可以使用这样的东西
show_notification("Successfully Saved your data","success");
我们可以将html
内容用作message
。
现在我想执行一些操作
离。
show_notification("Do you want to save your data","success");
所以这是用户的问题,用户需要点击yes
或no
进行回复[两者都将作为html消息传递]
我需要做的是当用户点击是/否我需要执行某些操作时。
我可以使用id
或class
附加点击事件,但我有多种类型的操作,需要使用截然不同的id
或class
。< / p>
我可以使用回电功能吗?
请帮助我或给我你宝贵的建议。
谢谢。
注意:我知道使用当前插件是不可能的,而不是谈论它的功能,我只是想修改插件。
答案 0 :(得分:0)
如果无法向您的插件发送回调,则必须手动将“是/否”按钮添加到您的消息中,并通过在线代表或在通知发布后指定一个侦听器来定位它们。所示。
$(function() {
$('body').on('click', '.notification-yes', function() {
// yes-callback
});
$('body').on('click', '.notification-no', function() {
// no-callback
});
});
show_notification('Do you want to proceed? <button class="notification-yes">Yes</button> <button class="notification-no">No</button>', 'success');
如果您使用的是this plugin,则您希望听众致电closeNotification()
。我意识到语法不完全相同,但这可能是一个版本问题。如果我们知道您正在使用的插件的详细信息,那么帮助您了解具体细节会更容易。
您还需要一种方法来了解单击按钮时显示的通知。您当然可以为不同的通知提供唯一的按钮类名称。另一种方法是,如果在任何给定时间始终只显示一个通知,那么将有一个小的状态对象用于感兴趣的回调。例如:
var myNotifications = {
onYes: function() { },
onNo: function() { }
};
$(function() {
$('body').on('click', '.notification-yes', function() {
myNotifications.onYes();
closeNotification();
});
$('body').on('click', '.notification-no', function() {
myNotifications.onNo();
closeNotification();
});
});
function showCertainNotification() {
myNotifications.onYes = function() {
// specific callback for this notification.
};
show_notification('Confirm? <button class="notification-yes">Yes</button> <button class="notification-no">No</button>', 'success');
}
如果任何时候都有多个通知显示,那么这样的简单变量就不会这样做。在这种情况下,您必须将消息包装在容器中,您可以从侦听器中提取ID,并根据该容器调用特定的回调,或将其作为参数传递。我不会在这里详细说明,因为show_notification
的简单本质意味着同样简单的close_notification
方式。由于似乎无法找到任何ID,我将假设不支持多个活动通知。
更有吸引力的解决方案可能是修改插件本身,而不是解决它,以便您可以将回调函数直接传递给插件。像这样:
show_notification({
message: 'Confirm',
type: 'success',
buttons: [
{ caption: 'Yes', click: function() { } },
{ caption: 'No', click: function() { } }
]
});
但是,当然,如果没有机会看看你目前使用的插件是什么样的话,这种情况几乎无法帮助你。