切换仅在第一次工作

时间:2014-07-15 09:51:34

标签: jquery

我编写了这个Jquery脚本来切换弹出窗口,现在一切正常,除了切换只能工作一次的部分。

我看到它与最初冒泡的事件有关,我需要用.stopPropagation()做一些事情,只是我没有修复它

$(function() {
    $(".nonrefundable a").on("click", function(e) {
        var link = this;

        e.preventDefault();
        $( "#popup" ).toggle();
        $("#ok").click(function () {
                    window.location = link.href;

        });
        $("#nope").click(function () {
            $( "#popup" ).toggle(); 

        });

    });
});

工作代码http://jsfiddle.net/Td42s/

3 个答案:

答案 0 :(得分:3)

试试这个:当你每次点击click锚时,你将ok事件与nopenonrefundatable结合,只需将其绑定一次并更改{{1}的值锚内部点击功能的变量。

注意:始终将link放在功能开头

e.preventDefault()

<强> Demo

答案 1 :(得分:2)

<强>问题

您将#nope#ok点击处理程序放在错误的位置。

这将在您每次单击锚点时分配处理程序。

<强>解

因此,您需要在外部分配click个处理程序。

这样做:

$(function() {
    var link;
    $(".nonrefundable a").on("click", function(e) {
        link = this;
        $( "#popup" ).toggle();

    });
    $("#ok").click(function () {
        window.location = link.href;

    });
    $("#nope").click(function () {
        $( "#popup" ).toggle(); 

    });
});

看看它是如何运作的:

<强> DEMO

答案 2 :(得分:0)

请使用此代码替换您的Js代码

$(function() {
    $(".nonrefundable a").on("click", function(e) {
        var link = this;

        e.preventDefault();
        $( "#popup" ).toggle();
        $("#ok").click(function () {
                    window.location = link.href;

        });
        $("#nope").unbind('click').click(function () {
           $( "#popup" ).toggle(); 

        });

    });
});

希望这会对你有所帮助