我正在尝试建立一个带有模式窗口的页面,该模式窗口会在存在该窗口的鼠标或单击链接时触发。
使用Ouibounce可以在退出时射击:
http://carlsednaoui.github.io/ouibounce/
Ouibounce API的文档建议我也应该能够通过单击来触发模式。
我在上面的示例中更改了链接,为它指定了#modal_button的ID,但无法触发窗口:
// if you want to use the 'fire' or 'disable' fn,
// you need to save OuiBounce to an object
var _ouibounce = ouibounce(document.getElementById('ouibounce-modal'), {
aggressive: true,
timer: 0,
callback: function() { console.log('ouibounce fired!'); }
});
$('#modal_button').on('click', function() {
$('#ouibounce-modal').fire();
});
$('body').on('click', function() {
$('#ouibounce-modal').hide();
});
$('#ouibounce-modal .modal-footer').on('click', function() {
$('#ouibounce-modal').hide();
});
$('#ouibounce-modal .modal').on('click', function(e) {
e.stopPropagation();
});
我在这里设置了一个jsfiddle来做同样的事情。
http://jsfiddle.net/fr7k3s6f/
(由于某种原因,body事件上的“隐藏”在jsfiddle中不起作用)
最佳答案
您需要使用对象_ouibounce来调用fire()函数:
_ouibounce.fire();
而不是jQuery对象。如果您在jQuery.ready()上定义它,则它必须是一个全局对象,因此之前没有“ var”。但是我认为这是当前版本(0.0.10)中的错误。
我希望这有帮助。