如何制作动态变量?

时间:2012-07-10 18:17:23

标签: jquery html css

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

我有一个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)时,它没有做任何事情。我尝试了很多种可能性。

希望你们中的任何人都可以帮助我,谢谢!

6 个答案:

答案 0 :(得分:3)

您在ID选择器之前缺少#

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

答案 1 :(得分:1)

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

答案 2 :(得分:1)

你错过了'#'

将其更改为:

$('#' + lement)

而不是:

$(lement)

答案 3 :(得分:1)

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

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

比你可以使用

$(lement)

答案 4 :(得分:1)

你传递的是id,例如tapme1。 jQuery想要一个CSS选择器,例如#tapme1。因此,请更改代码以查找$("#"+lement),甚至更好地查找var lement = "#" + e;

答案 5 :(得分:0)

由于您已经传递id,因此您必须更改:

$('#tapme1')

要:

$('#' + lement)

lement是你的函数的参数,例如你传递的id