使用单击命令一次,然后禁用它

时间:2013-05-20 23:36:23

标签: javascript html css unbind

这就是我想要做的。我在提示0上有两个按钮,是或否。如果单击“是”,则框会向左移动,同时淡出,并显示“提示1”。如果单击否,则框向右移动,提示2显示。我正在使用Z-index告诉它哪个提示应该在最顶层。现在,当我单击是时,它会转到提示1,如果我单击是或否按钮的区域,则没有任何反应。一切都很好。

当我点击No时,它会淡出(不会向左移动,但这不是我主要考虑的因素)并且会提示2.但是当我点击REGION(是的无法看到)时,是它是,它提示1.我已尝试解除对两个脚本的点击,但它不起作用。我做错了什么?

由于

$(document).ready(function () {
    $('.appIMG1').one('click.appIMG1',function () {
        $(this).unbind('click');
        $("#app1").animate({
            left: '250px',
            opacity:0
        });
        $("#app2").fadeIn('slow');
    });
});


$(document).ready(function () {
    $(".appIMG2").one('click.appIMG2', function() {
        $(this).unbind('click');
        $("#app1").animate({
            right: '250px',
            opacity:0
        });
        $("#app3").fadeIn("slow");
    });
});

提示0的Z索引为10,提示1为9,提示2为8。

1 个答案:

答案 0 :(得分:0)

您需要解除所有内容的点击事件,而不仅仅是所点击的项目。不需要使用$(this).unbind('click'),你需要将它从所有可点击的元素中取消绑定,就像这样(这是一个只使用第二个按钮的例子,但它需要同时完成):

$(".appIMG2").one('click.appIMG2', function() {
    $('.appIMG1, .appIMG2').unbind('click');
    $("#app1").animate({
        right: '250px',
        opacity:0
    });
    $("#app3").fadeIn("slow");
    });
});