我想在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");
});
});
答案 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/查看说明 它有很好的文档记录,所以你应该直接找到它来实现