আমার একটি টুইটার বুটস্ট্র্যাপ ড্রপডাউন মেনু রয়েছে। সমস্ত টুইটার বুটস্ট্র্যাপ ব্যবহারকারীরা জানেন, ড্রপডাউন মেনু ক্লিক ক্লিক করে বন্ধ হয় (এমনকি এটির ভিতরে ক্লিক করে)।
এটি এড়াতে, আমি সহজেই ড্রপডাউন মেনুতে একটি ক্লিক ইভেন্ট হ্যান্ডলার সংযুক্ত করতে পারি এবং কেবল বিখ্যাতটি যুক্ত করতে পারি 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>
তবে এটি সহজ এবং খুব সাধারণ আচরণ বলে মনে হচ্ছে এবং যেহেতু carousel-controls(পাশাপাশি পাশাপাশি carousel indicators) ইভেন্ট হ্যান্ডলারগুলি documentবস্তুকে অর্পণ করা হয়েছে , তাই clickএই উপাদানগুলির ( পূর্ব / পরবর্তী নিয়ন্ত্রণগুলি, ...) ইভেন্টটি "উপেক্ষা করা" হবে।
$('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();
});
টুইটার বুটস্ট্র্যাপের ড্রপডাউন hide/ hiddenইভেন্টগুলিতে নির্ভর করা নিম্নলিখিত কারণগুলির জন্য সমাধান নয়:
- উভয় ইভেন্ট হ্যান্ডলারের জন্য সরবরাহিত ইভেন্ট অবজেক্ট ক্লিক করা উপাদানটির জন্য রেফারেন্স দেয় না
- ড্রপডাউন মেনু সামগ্রীতে আমার নিয়ন্ত্রণ নেই তাই কোনও
flagশ্রেণি বা বৈশিষ্ট্য যুক্ত করা সম্ভব নয়
এই ফ্রিডালটি স্বাভাবিক আচরণ এবং এই ঝাঁকুনির সাথে রয়েছেevent.stopPropagation() যোগ করা হয়েছে।
হালনাগাদ
তার উত্তরের জন্য রোমানকে ধন্যবাদ । আমি একটি উত্তর পেয়েছি যা আপনি নীচে খুঁজে পেতে পারেন ।
event propagationবন্ধ হওয়ার পরে স্লাইড হয়নি ।