2016-02-23 19 views
2

我使用的引導下拉列表,並顯示所選項目...引導下拉 - 顯示所選項目最接近的元素是不工作

預期這是偉大的工作。但是,如果我有多個下拉菜單,我會遇到問題。如果我改變了一個項目,所有的下拉菜單正在改變...雖然我使用jQuery的從元素closest ...

Online Demo

jQuery的

jQuery('.th-icons-toggle .dropdown-menu li a').on('click', function() { 
    var newIcon = jQuery(this).closest('li').find("a").html(); 
    jQuery('.dropdown_title').html(newIcon); 
}); 

HTML

<h4>Select 1</h4> 
<ul class="list-inline th-icons-toggle"> 
    <li class="dropdown"> 
    <a class="dropdown-toggle" data-toggle="dropdown"> 
     <span class="dropdown_title"><i class="glyphicon glyphicon-cog"></i></span></a> 
    <ul class="dropdown-menu"> 
     <li><a href="javascript:;"><i class="glyphicon glyphicon-cloud"></i></a></li> 
     <li><a href="javascript:;"><i class="glyphicon glyphicon-pencil"></i></a></li> 
    </ul> 
    </li> 
</ul> 

<h4>Select 2</h4> 
<ul class="list-inline th-icons-toggle"> 
    <li class="dropdown"> 
    <a class="dropdown-toggle" data-toggle="dropdown"> 
     <span class="dropdown_title"><i class="glyphicon glyphicon-cog"></i></span></a> 
    <ul class="dropdown-menu"> 
     <li><a href="javascript:;"><i class="glyphicon glyphicon-cloud"></i></a></li> 
     <li><a href="javascript:;"><i class="glyphicon glyphicon-pencil"></i></a></li> 
    </ul> 
    </li> 
</ul> 
+3

'jQuery('。dropdown_title')。html(newIcon);'這條線說改變它在所有元素與班'dropdown_title'不管'最近' –

回答

3

jQuery('.th-icons-toggle .dropdown-menu li a').on('click', function() { 
    var newIcon = jQuery(this).closest('li').find("a").html(); 
    jQuery(this).parents('.dropdown').find('.dropdown_title').html(newIcon); 
}); 
+0

嗨** @ NiZa ** ...像一個魅力工作。 ..感謝** T知識產權** ..我已upvoted你的答案,並會盡快接受我可以......謝謝 – Reddy

+2

Thx。 Guruprasad Rao的回答也並沒有那麼糟糕。所以你也可以這樣做。 – NiZa

+0

這是Champ的態度:) – Reddy

3

你的目標在具體一般.dropdown_title元素,而不是。下面的變化應該做的伎倆..

jQuery('.th-icons-toggle .dropdown-menu li a').on('click', function() { 
    var newIcon = jQuery(this).closest('li').find("a").html(); 
    jQuery(this).closest('.dropdown').find('.dropdown_title').html(newIcon); 
     //^^^get the element with this 
}); 

這裏是working fiddle

1

在你的第一線,this已經是錨標記,所以世界上沒有必要去到父李來再拿到錨標籤再次。所以你可以做jQuery(this).html();

然後,你可以查找也有.dropdown_title作爲孩子最接近的家長和尋找它,這樣jQuery(this).parents('.dropdown').find('.dropdown_title')


Revissed JQuery的下面:JSFIDDLE

jQuery('.th-icons-toggle .dropdown-menu li a').on('click', function() { 
    var newIcon = jQuery(this).html(); 
    console.log(newIcon); 
    jQuery(this).parents('.dropdown').find('.dropdown_title').html(newIcon); 
});