this
कीवर्ड जावास्क्रिप्ट में सेट नहीं किया जा सकता है। यह स्वचालित रूप से जावास्क्रिप्ट द्वारा जेनरेट किया जाता है और "हमेशा उस कार्य के" मालिक "को संदर्भित करता है जिसे हम निष्पादित कर रहे हैं, या इसके बजाय, उस कार्य के लिए जो कार्य एक विधि है"।
— http://www.quirksmode.org/js/this.html
अपने कोड में एक समस्या है (यह करने के लिए submit_form() फ़ंक्शन का पैरामीटर नाम करने की कोशिश कर) है। हालांकि, जिस तरह से आपका कोड निर्धारित किया गया है, यह स्पष्ट नहीं करता है कि आप एक jQuery ऑब्जेक्ट के रूप में लिपटे क्लिक किए गए एंकर के साथ या एंकर के लिए डोम नोड के रूप में पास करने का इरादा रखते हैं।
$(document).ready(function() {
$('.nav a').click(function() {
$anchor = $(this); // Capture the jQuery-wrapped anchor for re-use; 'this' is an anchor because it matched $('.nav a')
var direction = $anchor.attr("name"); // $variable_name is a standard pattern in jQuery to indicate variables that are jQuery-wrapped instead of DOM objects
submit_form_jquery($anchor); // Providing versions of submit_form function for passing either jQuery-wrapped object or DOM object
submit_form_dom(this); // Pick the one you prefer and use it
});
function submit_form_jquery($my_anchor) { // Function with well-named parameter expecting a jQuery-wrapped object
// do some stuff with '$my_anchor'
// $my_anchor here is assumed to be a jQuery-wrapped object
}
function submit_form_dom(anchor) { // Function named expecting a DOM element, not a jQuery-wrapped element
// do some stuff with 'anchor'
// anchor here is assumed to be a DOM element, NOT wrapped in a jQuery object
}
});
एक ज्यादातर असंबंधित नोट पर, आप शायद या तो return false;
या event.preventDefault() का उपयोग करने के लंगर क्लिक किए गए पर href
निम्नलिखित से पेज रखने के लिए चाहता हूँ। आप निम्नानुसार ऐसा कर सकते हैं:
$(document).ready(function() {
$('.nav a').click(function(event) {
event.preventDefault();
// And now do what you want the click to do
});
});
आप इसे पहले से ही सही तरीके से करते हैं। 'Function submit_form (element) {} 'जैसे कुछ और फ़ंक्शन submit_form (this) {}' में चर का नाम बदलें। –
कृपया जावास्क्रिप्ट का उपयोग जिस तरह से किया जाना था (पैरामीटर के रूप में संदर्भ पास करने की आवश्यकता नहीं है) का उपयोग करें: 'submit_form.call (this)', 'submit_form.apply (this) ', या यहां तक कि jQuery का उपयोग करें यदि यह एकमात्र चीज है आप समझते हैं: 'jQuery.proxy (submit_form, यह)' –