如何在jquery中指定第二次单击

时间:2014-01-21 07:15:09

标签: jquery

我在jquery中有一个垂直菜单栏,打开一些子菜单

<li><a>open</a>
<ul class='count'>
            <li><a>Sub-Menu 1</a></li>
            <li><a>Sub-Menu 2</a></li>
            <li><a>Sub-Menu 3</a></li>
        </ul>
</li>

当我第一次点击打开时我想要打开子菜单,每次刷新页面时都会发布。

我知道location.reload()用于重新加载正文但是如何指定此事件是因为第二次点击该元素而不是第一次点击。

5 个答案:

答案 0 :(得分:1)

尝试

$('#menu li').one('click', function () {
    $(this).find('ul').show();
    $(this).on('click', function () {
        window.location.reload()
    })
});

演示:Fiddle

.one()方法用于注册一个只调用一次的事件处理程序,一旦调用处理程序,它就会从侦听器列表中删除。

答案 1 :(得分:0)

试试这个:

$("selector").click(function() {
var $this = $(this);
if ($this.hasClass("clicked-once")) {
    // already been clicked once, refresh the page
    location.reload();
}
else {
    // first time this is clicked, mark it
    $this.addClass("clicked-once");
}
});

<强> Working Fiddle

答案 2 :(得分:0)

给这样的id:

<a id="openLink">open</a>

然后添加一个eventListener:

$('#openLink').on('click', function(){
    $('#openLink').unbind('click');
    $('#openLink').on('click', function(){
          location.reload();
     });
});

Here is a fiddle

答案 3 :(得分:0)

试试这个: -

var clicks = 0;
$('a').click(function(){
    if(clicks == 0){
        // first click
    }else{
        // second clik
    }
    ++clicks;
}

答案 4 :(得分:0)

$(document).ready(function(){
    var count=0;
    $("#menu").click(function(){
        if(count>=1)
        {
            //do something here
        }
        else
        {
            $("#menu>list.count").show();
        }
        count++;
    });
});