0

我有一个小问题,我无法解决;

我有一个 div,onTouchEnd 应该运行一些 jquery 代码(它做得很好)。运行此函数时,它将发送特定 div 的 ID。

<div id="tapme1" class="subject hold" onTouchEnd="goes(this.id)"></div>

它运行这个函数:

function goes(e) {
   var now = new Date().getTime();
   var lastTouch = $(this).data('lastTouch') || now + 1 /** the first time this will make delta a negative number */;
   var lement = e
   var delta = now - lastTouch;
   if(delta<300 && delta>0) {
      if($('#tapme1').hasClass("hold")) {
          $('#tapme1').removeClass("hold");
      }
      else {
      $('#tapme1').addClass("hold");
      }
   }
   else {
      // A click/touch action could be invoked here but we need to wait half a second before doing so.
   }
   $(this).data('lastTouch', now);
}
function goes(e) {
   var now = new Date().getTime();
   var lastTouch = $(this).data('lastTouch') || now + 1 /** the first time this will make delta a negative number */;
   var lement = e
   var delta = now - lastTouch;
   if(delta<300 && delta>0){
      if($('#tapme1').hasClass("hold")) {
          $('#tapme1').removeClass("hold");
      }
      else {
           $('#tapme1').addClass("hold");
      }
    }
    else {
       // A click/touch action could be invoked here but we need to wait half a second before doing so.
    }
    $(this).data('lastTouch', now);
}

如您所知,这非常有效。现在问题来了。我希望它改变被点击的 div。当我变成$('#tapme1')$(lement)时,它什么也没做。我尝试了很多可能性。

希望你们中的任何人都可以帮助我,不胜感激!

4

6 回答 6

3

您缺少#id 选择器之前的。

更改$(lement)$("#" + lement)

于 2012-07-10T18:19:26.450 回答
1

你必须使用:$('#' + lement)

于 2012-07-10T18:19:46.180 回答
1

你不见了'#'

将其更改为:

$('#' + lement)

代替:

$(lement)
于 2012-07-10T18:21:48.287 回答
1

你为什么不只发送this而不是this.id作为参数发送?

<div id="tapme1" class="subject hold" onTouchEnd="goes(this)"></div>

比你可以使用

$(lement)
于 2012-07-10T18:22:04.917 回答
1

您正在传递 id,例如tapme1. jQuery 想要一个 CSS 选择器,例如#tapme1. $("#"+lement)因此,更改您的代码以寻找var lement = "#" + e;.

于 2012-07-10T18:23:59.877 回答
0

既然你已经通过了id,你将不得不改变:

$('#tapme1')

到:

$('#' + lement)

lement作为你的函数的参数,例如id你正在传递的。

于 2012-07-10T18:19:29.670 回答