jQuery按链接x次,然后这样做

jQuery press link x times then do this?

本文关键字:然后 这样做 链接 jQuery      更新时间:2023-09-26

我有一个链接,我加载一个特定的div,但我希望它加载另一个div,如果我按下它的第三次。如何做到这一点?

我猜你会做一些事情,比如定义一个变量为0,当它为3时,做一些其他的事情。我知道如何在PHP中做这些很简单的事情,但真的没有很好的jQuery经验。

基本的,我想要的是这样的:点击,点击,点击(新功能)

这是我当前的js代码:

$(".nav").click(function(e){
        e.preventDefault();
                    
        $.get(this.href, function(data) {
            
                $(this).html(data).fadeIn("fast");
        }); 
});

如果有单个div,只需声明一个全局变量,如var counter = 0;,然后在代码增量计数器中单击事件counter++并检查它是否为3,如果它为3,则执行类似if(counter == 3) { /*your action*/ }的操作

另一个解决方案可能是.toggle() [docs]函数:

$(".nav").toggle(handlerA, handlerA, handlerB);

,其中handlerA是第一次单击时要执行的函数的引用,handlerB是第三次单击时要执行的函数。

如果没有必要,就不要使用全局变量。其他语言有static变量;然而,javascript没有。Javascript确实有一些非常相似的东西。我建议您使用更像这样的方法,并在函数内部使用可以poyrazoglu建议的if语句。

的例子解释如何做到这一点的最简单方法是用一个例子。下面的示例函数名为"foo",它有一个名为"counter"的静态变量。每次调用该变量时,该变量将递增并写入文档。

function foo() {
    if( typeof foo.counter == 'undefined' ) {
        foo.counter = 0;
    }
    foo.counter++;
    document.write(foo.counter+"<br />");
}

当foo()第一次被调用时,foo。计数器尚未定义。上面示例函数的第一行检查它是否还没有定义,如果没有,则用一个值初始化它。

像这样多次调用foo():

foo();
foo();
foo();
foo();

会将以下内容写入文档:

1
2
3
4

本页示例:http://www.electrictoolbox.com/javascript-static-variables/

相关文章: