jQuery函数 - 通过两次单击返回一个值

时间:2012-06-07 14:27:04

标签: javascript jquery function attr

我想在JavaScript函数中携带一个值,但是使用jQuery来检测点击或悬停状态。

function foo(bar){
 var choc=bar;
}

当我点击foo()时,我希望它检测到第一次点击,第二次点击,这样我就可以进行图像交换。

示例:

function foo(bar) {
    var choc=id;    
    $(id).click(function () {
        alert('first click');
    }, function () {
        alert('second click');
    }); 
}

我只能返回第一次点击。这就是我想要做的事情:

一个不起作用的例子

<a href="javascript:open(5);" class="open">open <img id="5" class="swap5" src="down.png" /></a> 
<div id="box5">press the up button to close me</div>

的jQuery

$(document).ready(function() {
        $(".open").click(function(event){
              var id = event.target.id;
              $('#box' + id).slideToggle();
              $(".swap"+id).attr("src", "up.png");
        }, function () {
                var id = event.target.id;
                $('#box' + id).slideToggle();
                $(".swap"+id).attr("src", "down.png");
        });
    });

3 个答案:

答案 0 :(得分:3)

使用.toggle代替.click

$(document).ready(function() {
    $(".open").toggle(function(event){
          event.preventDefault();
          var id = event.target.id;
          $('#box' + id).slideToggle();
          $(".swap"+id).attr("src", "up.png");
    }, function (event) {
          event.preventDefault();
          var id = event.target.id;
          $('#box' + id).slideToggle();
          $(".swap"+id).attr("src", "down.png");
    });
});

还会丢失href="javascript:open(5);"标记中的<a>。请改用href="#"

答案 1 :(得分:2)

这是一个非常糟糕的解决方案,但这是我的看法。 声明一个初始化为0的计数器变量。 点击增加它并检查它是否为2以执行您的操作。

var counter = 0;

function foo(bar) {
  var choc=id;    
  $(id).click(function () {
    if(counter == 2) {
     //Perform action
     counter = 0; //reset counter
    } else {
      counter++;  //Increment counter
    }
  });
}

答案 2 :(得分:0)

您是否尝试使用双击事件处理程序?请访问:http://api.jquery.com/dblclick/查看说明 它有很好的文档记录,所以你应该直接找到它来实现