Wednesday 15 September 2010

javascript - jQuery: how to add parameter to a callback function without losing default parameter -


मेरे पास यह कोड है:

  var callbackAfterLoad = function (data, ecBlock) {ecBlock .html (डेटा); ecBlock.slideDown (); } फ़ंक्शंस बाइंडवेंट्स (यूज़र इंपुट, इकोब्लॉक, कॉलबैक एफ़टरलोड) {userInput.keyup (फ़ंक्शन () {देरी (फ़ंक्शन () ($ .post ("/ पूर्वावलोकन", {content: userInput.val ()}, कॉलबैकअफटरलोड (डाटा, इकोब्लॉक) );}, 500);}); }   

और यह त्रुटि:

  अनचाहे संदर्भ संदर्भ: डेटा परिभाषित नहीं है   

लेकिन जब मैं jQuery की जांच करता हूं उदाहरण

  $। Post ("test.php", फ़ंक्शन (डेटा) {चेतावनी ("डेटा लोड किया हुआ:" + डेटा);});   

मुझे यह त्रुटि क्यों मिली? क्यों jQuery उदाहरण काम कर रहा है और मेरा नहीं? (हम पैरामीटर नहीं जोड़ सकते हैं?)। क्या डिफ़ॉल्ट $ .post कॉलबैक परिभाषित है और उसके हस्ताक्षर को ओवरराइड नहीं किया जा सकता है?

तीसरा तर्क > $। पोस्ट फ़ंक्शन होना चाहिए, लेकिन जब आप ऐसा करते हैं:

  $। Post ("/ preview", {content: userInput.val ()}, callbackAfterLoad ( डेटा, ecBlock))   

तीसरा तर्क फ़ंक्शन नहीं है, लेकिन फ़ंक्शन के वापस मान इस तरह:

  fn = callbackAfterLoad // समारोह संदर्भ fn = callbackAfterLoad () // फ़ंक्शन निष्पादन और वापसी मान संदर्भ   

और जब आपके उदाहरण में निष्पादित , डेटा अभी तक उपलब्ध नहीं है सही वाक्यविन्यास होगा:

  $। Post ("/ preview", {content: userInput.val ()}, callbackAfterLoad)   

यदि आप अपने कॉलबैक में कस्टम तर्कों को पारित करने की आवश्यकता है, आप इस तरह एक नया प्रॉक्सी फ़ंक्शन बना सकते हैं:

  var कॉलबैक = फ़ंक्शन (डेटा) {callbackAfterLoad.call (यह, डेटा, ecBlock); }; $ .post ("/ पूर्वावलोकन", {content: userInput.val ()}, कॉलबैक);    

No comments:

Post a Comment