Bir Twitter Bootstrap açılır menüm var. Tüm Twitter Bootstrap kullanıcılarının bildiği gibi, açılır menü tıklandığında kapanır (içinde tıklatarak bile).
Bundan kaçınmak için, açılır menüye kolayca bir tıklama olay işleyicisi ekleyebilir ve ünlüleri ekleyebilirim event.stopPropagation().
<ul class="nav navbar-nav">
<li class="dropdown mega-dropdown">
<a href="javascript:;" class="dropdown-toggle" data-toggle="dropdown">
<i class="fa fa-list-alt"></i> Menu item 1
<span class="fa fa-chevron-down pull-right"></span>
</a>
<ul class="dropdown-menu mega-dropdown-menu">
<li>
<div id="carousel" class="carousel slide" data-ride="carousel">
<ol class="carousel-indicators">
<li data-slide-to="0" data-target="#carousel"></li>
<li class="active" data-slide-to="1" data-target="#carousel"></li>
</ol>
<div class="carousel-inner">
<div class="item">
<img alt="" class="img-rounded" src="img1.jpg">
</div>
<div class="item active">
<img alt="" class="img-rounded" src="img2.jpg">
</div>
</div>
<a data-slide="prev" role="button" href="#carousel"
class="left carousel-control">
<span class="glyphicon glyphicon-chevron-left"></span>
</a>
<a data-slide="next" role="button" href="#carousel"
class="right carousel-control">
<span class="glyphicon glyphicon-chevron-right"></span>
</a>
</div>
</li>
</ul>
</li>
</ul>
Bu kolay ve çok yaygın bir davranış carousel-controlsgibi görünmektedir carousel indicatorsve olay işleyicileri documentnesneye (ve aynı zamanda ) aktarıldığından, clickbu öğelerdeki olay ( önceki / sonraki denetimler, ...) “yoksayılır”.
$('ul.dropdown-menu.mega-dropdown-menu').on('click', function(event){
// The event won't be propagated up to the document NODE and
// therefore delegated events won't be fired
event.stopPropagation();
});
Twitter Bootstrap açılır hide/ hiddenetkinliklerine güvenmek aşağıdaki nedenlerden ötürü bir çözüm değildir:
- Her iki olay işleyicisi için sağlanan olay nesnesi, tıklanan öğeye başvuru vermez
flagSınıf veya öznitelik eklemek mümkün olmadığından açılır menü içeriği üzerinde kontrolüm yok
Bu keman normal bir durumdur ve bu keman edilir ile event.stopPropagation()ekledi.
Güncelleme
Cevabı için Roma'ya teşekkürler . Ayrıca aşağıda bulabileceğiniz bir cevap buldum .
event propagationdurdurulduğundan beri karusel kaymaz .