我正在尝试建立一个带有模式窗口的页面,该模式窗口会在存在该窗口的鼠标或单击链接时触发。

使用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)中的错误。

我希望这有帮助。

09-25 21:54