2012-07-10 46 views
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)時,它沒有做任何事情。我嘗試了很多可能性。

希望你們中的任何一位都能幫助我,感激!

+0

請清理代碼。這太亂了,縮進使得難以遵循:所以我剛剛停止閱讀。編碼也是關於*傲慢*。 – 2012-07-10 18:20:07

+0

也許是複製/粘貼錯誤,但你有兩次去那裏的功能。另外,在var lement = e之後缺少分號。 – 2012-07-10 18:20:29

+0

@ OllyHodgson在這裏不需要分號;-)(我寫無分號,但我同意缺少它與選擇的風格不一致*) – 2012-07-10 18:20:53

回答

3

您在id選擇器之前缺少#

變化$(lement)$("#" + lement)

+0

我可以補充說,這是我一直在遇到的問題,你剛剛救了我的一天先生。謝謝你(: – 2012-07-10 20:00:37

0

既然你已經通過id,你將不得不改變:

$('#tapme1') 

要:

$('#' + lement) 

lement是你的功能如參數id你正在通過。

1

你必須使用: $( '#' +字元素)

1

你錯過'#'

將其更改爲:的

$('#' + lement) 

代替:

$(lement) 
1

爲什麼不發送this而不是this.id作爲參數?

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

比你可以使用

$(lement) 
+0

)爲什麼我沒有想到這個?更清潔! – 2012-07-10 18:25:44

1

你傳遞的ID,例如tapme1。 jQuery需要一個CSS選擇器,例如#tapme1。因此,更改您的代碼以查找$("#"+lement),或者更好,var lement = "#" + e;