如果第一次单击有效,则第二次单击元素

时间:2014-12-26 05:21:24

标签: javascript jquery

我有一个范围

<span class='click1 click2'>Click me </span>

您可以看到有两个类 click1 click2

现在下面是脚本

$(".click1").click(function () {
    alert('yes I am click1');
});
$(".click2").click(function () {
    if(confirm('Sure to Click1'))
        return false;
});

我期望只有click1允许才会调用click2。

这是jsfiddle链接

Sample code

我尝试了交换jquery函数,它是调用哪个是第一个编写的,但是在场景中不起作用,

有很多函数编写,**现在我想要为元素添加一个类,并且想要激活一个新的权限对话框,之前的书面事件只有在新事件允许它们工作时才有效..

如果问题不明确,

问题是当我对的确认说“否”时确认(确认(&#39;确定要点击1&#39;))然后click1不起作用

请告知**

由于

5 个答案:

答案 0 :(得分:1)

你可能正在寻找event.stopImediatePropagation()。不幸的是,alert()confirm并没有很好地发挥作用。

答案 1 :(得分:1)

Fiddle Demo

试试这个

$(".click1").click(function () {
    if($(this).hasClass("sure"))
    {
    alert('yes I am click1');
    }
});
$(".click2").click(function () {
    if(confirm('Sure to Click1'))
        {
            $(this).addClass("sure");
        }
    else
    {
            $(this).removeClass("sure");
    }
});

答案 2 :(得分:0)

我不确定我是否理解得很好,但是它来了:

$('.click1').click(function() {
    console.log('1');
    $(this).unbind('click');
    $('.click2').click(function() {
        console.log('2');
    });
});

jsfiddle

编辑: 现在? jsfiddle2

答案 3 :(得分:0)

您可以将布尔变量分配给两个单击函数的父作用域。然后,您可以在第一次单击时将变量设置为true或false,并检查第二次单击时是否已更改该变量。如果你想减少更多,只需使用一个if的单击函数来检查该变量的条件。像这样:

var isClicked = false;

$(".click").click(function () {
    if (!isClicked) {
        // do first click stuff

        isClicked = true;
    } else {
        // do second click stuff
    }
});

答案 4 :(得分:0)

这应该有效:

$(".one").click(function(){
    alert('one');
});

$(".two").mousedown(function(){
    if(confirm("Sure?"))
        $(".one").trigger("click");
});

首先触发Mousedown事件,然后单击鼠标点击事件