结果不像我期望的那样

    var clicks = 0;
    $("*").click(function(event){
        if(clicks == 0){  // first click
            a=parseFloat(event.pageY-pageYOffset);
            ++clicks;
        }else{ // second clik
            b=parseFloat(event.pageY-pageYOffset);
            $("#lable7").text(b-a);  //heppen in first click, why?
            clicks=0;
        }
    } );


我想计算第一次点击和第二次点击之间的距离,并在页面上进行多次。

我尝试了一些技巧,但

$('*').one('click',function(){

}).click(function(){

   alert("heppen in first click");
});


我做错了什么?

最佳答案

事件正在冒泡,因此正在为页面上的所有嵌套元素执行处理程序。您需要禁用传播。



var clicks = 0;
var pageYOffset = 500;
$("*").click(function(event) {
  if (clicks == 0) { // first click
    a = parseFloat(event.pageY - pageYOffset);
    ++clicks;
  } else { // second clik
    b = parseFloat(event.pageY - pageYOffset);
    $("#lable7").text(b - a); //heppen in first click, why?
    clicks = 0;
  }
  event.stopPropagation();
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>Text
  <div>More text</div>
</div>
<div id="lable7"></div>

关于javascript - 第一次点击,结果与我预期的不同,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27161178/

10-10 23:53