Jquery Toggle防止链接上的默认值

时间:2013-05-19 12:12:48

标签: jquery

我正在网站上显示链接。

当用户点击该链接时,我不希望他们立即转到该URL。相反,内联弹出框*应显示免责声明。然后,用户可以再次单击该链接以转到URL(这也将隐藏免责声明)。

我知道您可以使用Prevent Default来禁用链接的默认操作(因此不会将用户带到任何地方)。

我知道您可以使用toggle()来显示/隐藏弹出框。

但是,我不确定如何切换以防止默认。

这是我的jQuery代码(JS Fiddle是here

(function($) {
    $(document).ready(function() {
        "use strict";
        $(".ui-popbox a").click(function(e) {
            e.preventDefault();
            $("[class^='ui-popbox-']").fadeToggle();
        });
    });
})(jQuery);

通过“内联弹出框”我指的是出现在HTML文档中的框。我不是指弹出窗口。

1 个答案:

答案 0 :(得分:1)

您可以将数据对象传递到事件处理程序,以检查是否在jQuery中弹出免责声明,如下所示:

$(".ui-popbox a").click({popped: false}, function (e) {
    if (!e.data.popped) {
        e.preventDefault();
        $("[class^='ui-popbox-']").fadeToggle();
        e.data.popped = true;
    }
});

http://jsfiddle.net/HZsQv/6/

对象的值将保留在事件之间。