2013-10-17 60 views
0

我想改變一下就icon-埃夫裏的時間用戶的z-index點擊圖標指數-Z是+1,但我的代碼無法正常工作:設置z-index的動態與JS

$(document).on('click', '.icon-layer-up', function() { 
     console.log($(this).parent(".ui-wrapper").css("z-index")); 
     var currentIndex = $(this).parent(".ui-wrapper").css("z-index"); 
     if (currentIndex = "auto") { 
     currentIndex = 0; 
     } 
     var num = currentIndex++; 
     $(this).parent(".ui-wrapper").css("z-index", num); 
    }); 

回答

1

您的問題是var num = currentIndex++;

currentIndex++將增加currentIndexcurrentIndex + 1,但它會返回原來的價值,所以num被分配到currentIndex原始值。只需使用var num = currentIndex + 1

如果您只想添加1,那麼使用++並不是很好的編碼習慣。如果您只是添加,請使用+ 1

+3

'VAR NUM = ++ CURRENTINDEX; .'增量+分配值 –

2

if(currentIndex = "auto") { 

if(currentIndex == "auto") { 

第一個很大的區別進行,你不打算轉讓,總是返回「自動」作爲結果始終if語句運行,將currentIndex重置爲0.

404也是正確的,你不想在這種情況下給我們「num ++」出於兩個原因

  1. 它試圖只分配,這將使你反正不正確的值之後,增加值,但是...
  2. 你的情況「民」,實際上是因爲它是如何獲得一個 。你需要將它轉換爲數字做加法:parseInt(num) + 1
1

,我與你的代碼,這可能會或可能不會是一個問題,就是你缺少的數據參數注意到的第一件事你jQuery on事件。您還打算將您的活動應用到document.body而不是document

$(document.body/*changed*/).on('click', '.icon-layer-up', {}/*added*/, function() { 

接下來,你總是設置currentIndexauto再到0,而不是檢查,看它是否等於auto

if (currentIndex ==/*fixed*/ "auto") { 

此外,您在最初設定currentIndex作爲一個字符串,它會試圖增加它當字符串只轉換爲數字,你的方式。您必須先嚐試將其轉換爲Number,然後檢查以確保它是Number,然後然後對其進行增量。

這麼幹脆固定的代碼應該是:

$(document.body).on('click', '.icon-layer-up', {}, function() { 
     console.log($(this).parent(".ui-wrapper").css("z-index")); 
     var currentIndex = Number($(this).parent(".ui-wrapper").css("z-index")); 
     if (isNaN(currentIndex)) { // if is not a number, set it to 0 
     currentIndex = 0; 
     } 
     var num = currentIndex++; 
     $(this).parent(".ui-wrapper").css("z-index", num); 
    }); 

接下來,確保你閱讀z-index,並瞭解它是如何工作的。 z-index將不會應用於static的默認position的元素。嘗試將您的元素設置爲position: relative;,您嘗試應用z-index

參考z-index
Understanding CSS z-index
Adding z-index

在這種情況下使用