我已经以图层格式一个接一个地声明了两个div,这意味着" DIV2(#myDiv2)将放在DIV1(#myDiv1)上。单击DIV2,必须隐藏它。它工作正常。但是,当我双击DIV2时,DIV2通过首次单击该双击事件获得隐藏,然后双击事件也绑定到DIV1。我不知道它是怎么发生的。 我的要求是当我双击DIV2时,DIV2必须隐藏然后单击事件只需要为DIV1绑定。
actionBarDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "ToolbarNavigationClickListener", Toast.LENGTH_SHORT).show();
}
});

$("#myDiv2").click(function(e) {
$(this).css("display", "none");
});
$("#myDiv1").dblclick(function(e) {
alert("DIV 1 double clicked");
});

答案 0 :(得分:2)
dblclick
事件对click
事件进行排队,并检查目标元素。隐藏的可见性会干扰,并且会在目标元素上触发第二次立即点击。
一种解决方案是在隐藏第二个dblclick
后解除并绑定div
事件并超时。
$("#myDiv1").on('dblclick', runOnDoubleClick);
$("#myDiv2").on('click', function(e) {
$(this).hide();
$("#myDiv1").off('dblclick');
setTimeout(function() {
$("#myDiv1").on('dblclick', runOnDoubleClick)
}, 300);
});
function runOnDoubleClick()
{
alert("DIV 1 double clicked");
$("#myDiv2").show();
}
答案 1 :(得分:0)
我认为你把点击事件搞糊涂了,试试这个:
$("#myDiv2").dblclick(function(e) {
$(this).css("display", "none");
});
$("#myDiv1").click(function(e) {
alert("DIV 1 double clicked");
});