2015-10-12 76 views
1

我有幾個具有獨特Z索引的div。現在我想添加幾個類到具有特定z-index的div。比方說,這個div的z-index的是5jquery添加類到具有特定Z索引的div

所有一個定位爲與類.main-stack一個主要的div的div和所有有類.card有幾個.main-stack的div。如果具有特定z-index的div存在或不存在,都需要檢查。如果找到了,則應該將某些類添加到該div。

我有以下半工作代碼:

$('.main-stack').each(function() { 
    if ($(this).css('z-index', '5')) { 
     $('.main-stack .card') 
      .addClass('ui-front') 
      .removeClass('flipped') 
      .removeClass('ui-draggable-disabled') 
      .removeClass('ui-droppable-disabled') 
      .draggable({ 
       disabled: false 
      }) 
      .addClass('top-card'); 
    } 
}); 

這段代碼的問題是,它增加了班所有的div,而不是隻在一個用z-index = 5

我在這裏錯過了什麼?

+6

'如果($(此添加多個類和刪除多個類).css('z-index','5')){'將設置'z-index',以獲得和比較使用if($(this).css('z-index')== 5 ){' – Tushar

+0

您可以添加多個('(this)).css('z-index','if($ this).css','addClass'和removeClass'刪除多個類,CODE:'$('。main-stack' 5')){('。main-stack.card') .addClass('ui-front top-card') .removeClass('翻轉ui-draggable-disabled ui-droppable-disabled') 。可拖動({禁用:假 }); } });' – Tushar

+0

@Tushar,請將此作爲答案! – ntgCleaner

回答

1

if($(this).css('z-index', '5')) {將設置元素的z-indexcss將返回jQuery對象,所以它會永遠評估爲true

要檢索和比較z-index使用

if($(this).css('z-index') == 5) { 

對於性能增益,你可以用addClassremoveClass

$('.main-stack').each(function() { 
    if ($(this).css('z-index') == 5) { 
     $('.main-stack .card') 
      .addClass('ui-front top-card') 
      .removeClass('flipped ui-draggable-disabled ui-droppable-disabled') 
      .draggable({ 
       disabled: false 
      }); 
    } 
}); 
+0

謝謝,還有@ebilgin兩個同樣的答案,最終答案的折騰去了Tushar :) – Maurice

1

jQuery .css()函數可以得到2個參數。如果您通過參數,您將調用get函數。如果您通過參數,您將調用set函數。

如果您更改您的代碼,如下所示,您可以得到一個工作。

$('.main-stack').each(function() { 
    if ($(this).css('z-index') == '5') { // Change here. 
     $('.main-stack .card') 
      .addClass('ui-front top-card') 
      .removeClass('flipped ui-draggable-disabled ui-droppable-disabled') 
      .draggable({ 
       disabled: false 
      }); 
    } 
}); 

您可以在此處獲得更多關於.css()的信息。

http://api.jquery.com/css/