我有一个链接,我加载一个特定的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/