2012-05-31 25 views
5

हे मैं एक jQuery समारोह है कि समारोह इस प्रकार है एक लंगर के onclick घटना पर शुरू हो रहा है है:jquery: event: event.preventDefault(); , ई परिभाषित नहीं है

<a href="#!" onclick="dropDown('sn_cities')" >Cities</a> 
:

function dropDown(subid, e) { 
e.preventDefault(); 
var sub = '#' + subid; 
// hide all submenus first 
$('.subnav').css({'display' : 'none'}); 
//Show the Current Subnav 
$(sub).css({'display' : 'block'}); 
} 

यह है कि कैसे मैं इसे गति प्रदान करने के tring हूँ

हालांकि मुझे यह त्रुटि मिल रही है: e is undefined

मैं एंकर लिंक की डिफ़ॉल्ट ऑनक्लिक घटना को रद्द करना चाहता हूं, किसी भी मदद की सराहना की जाएगी।

उत्तर

15

आप फ़ंक्शन के e पैरामीटर पर ईवेंट ऑब्जेक्ट (या कुछ भी नहीं) पारित नहीं कर रहे हैं। इस प्रयास करें:

onclick="dropDown('sn_cities',event);" 

मैं इनलाइन जेएस कम करने के लिए पूरी तरह से हालांकि इच्छुक होगी:

<a href="#!" data-dropDown="sn_cities">Cities</a> 

$(document).ready(function() { 

    $("a[data-dropDown]").click(function(e) { 
     e.preventDefault(); 
     // hide all submenus first 
     $('.subnav').hide(); 
     //Show the Current Subnav 
     $('#' + $(this).attr("data-dropDown")).show(); 
    }); 

}); 
+0

omg कितना गूंगा था, धन्यवाद @nnnnnn – Amyth

0
function dropDown(subid) { 
var sub = '#' + subid; 
// hide all submenus first 
$('.subnav').css({'display' : 'none'}); 
//Show the Current Subnav 
$(sub).css({'display' : 'block'}); 
} 

<a href="#!" onclick="dropDown('sn_cities'); return false;" >Cities</a> 

एक साइड नोट के रूप में। इनलाइन-जावास्क्रिप्ट की अनुशंसा नहीं की जाती है। स्पष्टता के लिए अपनी स्क्रिप्ट को बाहरी फ़ाइल में रखें।

+0

आपकी प्रतिक्रिया के लिए धन्यवाद अब कि कोशिश करेंगे, बस जिज्ञासु, यह संभव नहीं है के साथ अन्य मापदंडों पारित करने के लिए jquery में घटना? – Amyth

+0

आप कर सकते हैं, जैसा कि nnnnnn भी पोस्ट किया गया है। – ahren

+0

वह एंकर को ट्रिगर करने और "#" लिंक पर कूदने से रोकने के लिए preventDefault को कॉल करता है, आप बस इसे हटा दें? –