मेरे पास कुछ तत्वों के लिए बुलबुले से क्लिक रोकने से रोकने के लिए कुछ e.stopPropagation()
ईवेंट चल रहे हैं।साइट के किसी भी पेज पर कहीं भी क्लिक करना jquery का कारण बनता है। ठीक है त्रुटि, क्यों?
Uncaught TypeError: ((m.event.special[e.origType] || (intermediate value)).handle || e.handler).apply is not a function
मैं बहुत यकीन है कि यह यहाँ stopPropagation()
हैंडलर के साथ क्या करना है कर रहा हूँ: लेकिन अब ऐसा लगता है कि हर मैं कुछ भी पर क्लिक करें, उन तत्वों के अलावा, इन पृष्ठों पर, मैं कंसोल में इस त्रुटि हो रही है लगता है , लेकिन मैं इसे ठीक से कैसे ठीक करूं, इन कार्यों पर उचित रूप से कार्य करने के लिए इन तत्वों पर stopPropagation()
फ़ंक्शन की आवश्यकता है।
var mainMenu = $(".menuMain");
if (mainMenu.length) {
var clonedMain = mainMenu.clone(true, true),
baseLogo = clonedMain.find('.logoMenu').find('.base-logo'),
scrollLogo = clonedMain.find('.logoMenu').find('.scroll-logo');
clonedMain.addClass('scroll-menu').addClass('hidden');
baseLogo.addClass('hidden');
scrollLogo.removeClass('hidden');
}
// Bootstrap Menu Dropdowns:
$('ul.menu-bootstrap-menu').on('click', '.dropdown-menu', function(event) {
event.preventDefault();
event.stopPropagation();
$(this).parent().siblings().removeClass('open');
$(this).parent().toggleClass('open');
});
$('.dropdown').on('click', '.dropdown-toggle', function(e) {
e.stopPropagation();
var $this = $(this);
var $li = $this.closest('li.dropdown');
$li.siblings().removeClass('open');
$li.siblings().find('a').removeClass('dropdown-overlay').children('.caret-arrow').hide();
if ($li.hasClass('open'))
{
$li.removeClass('open');
$this.removeClass('dropdown-overlay').children('.caret-arrow').hide();
}
else
{
// Remove Sticky Nav search, if exists!
if ($('.search-scroll').length)
clonedMain.find('.menu-bootstrap-menu > li.search a').trigger('click');
$li.addClass('open');
$this.addClass('dropdown-overlay').children('.caret-arrow').show();
}
});
$(document).on('click', function(e) {
$('li.dropdown').removeClass('open');
$('li.dropdown a.dropdown-toggle').removeClass('dropdown-overlay').children('.caret-arrow').hide();
var eventtarget = e.target;
// If clicking anywhere outside of sticky nav search bar!
if ($('.search-scroll').length)
{
var navtargets = eventtarget.closest('li.menu-item.search'),
objsearch = $(eventtarget);
if (!navtargets && !objsearch.hasClass('search-input'))
clonedMain.find('.menu-bootstrap-menu > li.search a').trigger('click');
}
// If clicking anywhere outside of sub navs!
if ($('.nav-body').length)
{
var navbody = eventtarget.closest('.nav-body');
if (!navbody && $('.nav-body').is(':visible'))
$('.nav-body').slideToggle('fast');
}
});
असल में, यहाँ क्या हो रहा है, मुख्य मेनू के लिए, मैं इसे जरूरत सक्रिय/दिखाई रहने के लिए जब तक दस्तावेज़ पर कहीं से दूर क्लिक किया:
यहाँ मैं वर्तमान में उपयोग कर रहा हूँ js कोड है । साइट के कुछ पृष्ठों पर एक उपमेनू भी है, जिसे मेनू के बाहर कहीं भी क्लिक किए जाने तक भी खुला रहने की आवश्यकता है। यह सब ठीक काम कर रहा है और उम्मीद के रूप में। एकमात्र मुद्दा जो मैं देख रहा हूं वह कंसोल में त्रुटि उत्पन्न करने वाली त्रुटि है, जो मुझे मौत की ओर अग्रसर करना शुरू कर रहा है क्योंकि प्रत्येक बार जब मैं ul.menu-bootstrap-menu .dropdown-menu
और .dropdown .dropdown-toggle
के अलावा किसी भी तत्व पर क्लिक करता हूं तो यह बढ़ता रहता है। यह सब कोड document.ready
फ़ंक्शन कॉल में लपेटा गया है।
कोई विचार कैसे/क्यों हो रहा है?
मैं jQuery v1.11.3
नीचे का उपयोग कर रहा, त्रुटि के बारे में चित्र हैं अगर यह मदद करता है: कंसोल में
:jQuery.min फ़ाइल में त्रुटि
डाउनवॉटेड? क्यूं कर? –
क्या आप त्रुटि के बारे में अधिक जानकारी प्रदान कर सकते हैं? त्रुटि ढेर की तरह। आप किस jQuery संस्करण का उपयोग कर रहे हैं? मुझे आपके कोड और स्टॉप के साथ स्पष्ट रूप से कुछ भी गलत नहीं दिख रहा हैप्रॉपैगेशन को इस तरह की त्रुटि नहीं होनी चाहिए ... कुछ और चल रहा है। –
@VictorLevin त्रुटि की छवियों के साथ प्रश्न संपादित किया जितना मैं त्रुटि पर प्रदान कर सकता हूं। आप इसे '.stopPropagation' –