2015-04-12 79 views
1

问题我想用这个jQuery插件: http://ethaizone.github.io/Bootstrap-Confirmation/#与事件代表团

,我在加载AJAX的按钮,这一事实引起了我的问题。我知道我需要事件代表团来解决这个问题,但很遗憾,我无法弄清楚如何正确地做到这一点。

我当前的代码是:

 (function($) { 

     $(document).on("click", "a[data-toggle='confirmation']", function(event) { 
      $(this).confirmation() 
     }); 

    }(jQuery)); 

和HTML按钮:

<a href='test' class='btn btn-primary' data-toggle='confirmation'>Click me</a> 

可悲的是有一些问题。如果我点击按钮,它会将我重定向到给定的href属性,而不首先显示对话框。如果我删除了href,那么我需要点击两次按钮来调出对话框(之后,点击同一个按钮就可以重新启动)。

我在做什么错?

+0

你不需要“需要”事件代表团。这只是解决问题的一种方法。 –

+0

啊好的。随时让我知道另一种方式来做到这一点,因为它不反对atm – Michael

+0

您的处理程序分配不是问题。只是说这个代表团实际上并不需要。很多人都会说,尽管事实并非如此。 –

回答

4

以下超链接是浏览器对具有href属性的a元素的默认操作。你需要告诉浏览器不要做,通过调用preventDefault

$(document).on("click", "a[data-toggle='confirmation']", function(event) { 
    event.preventDefault(); 
    $(this).confirmation() 
}); 

看来,该库希望你提供一个data-href属性,这是URI浏览到,如果用户接受确认:

<a href='test' class='btn btn-primary' data-toggle='confirmation' data-href="/accept-url">Click me</a> 
+0

好的,这确实可以确保它不会马上重定向到href,但即使点击确认按钮后它仍然不会重定向到它。 :( – Michael

+0

我已经更新了答案 - 文档说你应该提供一个'data-href'属性 – joews

+0

它说你可以提供它,否则它会选择默认的href,但即使我提供它,当我移动确认按钮时会显示它,但是如果我点击它,在关闭工具提示的事实旁边没有任何反应。 – Michael