कैसे एक इनलाइन जावास्क्रिप्ट समारोह के लिए एक पैरामीटर पारित करने के लिए

वोट
2

मैं अंतरतम इनलाइन समारोह में story_id पारित करने के लिए कोशिश कर रहा हूँ, लेकिन इसकी हमेशा 0 भी अपने नहीं है, हालांकि 0 बाहरी कार्य करते हैं। मैं में इस मान को कैसे पारित करते हैं?

function activateSearch(){
  if($('story_filter')) Event.observe('story_filter', 'keyup',
    function(event) {
      $('stories_table').select(.story).each(
        function(story) {
          story_id = story.id.split('_')[1];
          story.select('.tableCell', '.indexCardContent').each(
            function(task, story_id) {
              hideStoryRow(story_id);
              task_filter = new RegExp($F('story_filter'), i);
              if (task.innerHTML.match( task_filter ))
              {
                  showStoryRow(story_id);
                  throw $break;
              }
            }
          );
        }
      );
    }
  );
}
23/04/2009 को 12:57
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


3 जवाब

वोट
-1

यदि आप एक scoping मुद्दा मिल गया है।

त्वरित सुधार: एक वैश्विक रूप story_id परिभाषित करते हैं।

var story_id;

function activateSearch() { ....
23/04/2009 को 13:01
का स्रोत उपयोगकर्ता

वोट
0

आप ऐसा नहीं करते। प्रत्येक विधि समारोह परिभाषा लेता है और फिर सरणी में प्रत्येक तत्व के लिए कि फ़ंक्शन को कॉल। यदि आप इनलाइन समारोह परिभाषा उपयोग करना चाहता था आप अपने स्वयं के कस्टम प्रत्येक विधि लिखने की ज़रूरत होगी।

दोनों पठनीयता और कार्यक्षमता के लिए, मैं सबसे भीतरी इनलाइन समारोह बाहर टूट जाएगा और फिर सूची में प्रत्येक तत्व के लिए, अपने कार्य के लिए बाहर कहते हैं।

23/04/2009 को 13:02
का स्रोत उपयोगकर्ता

वोट
7

सभी आप इस काम करने के लिए क्या करना है इस लाइन को बदलने है:

    function(task, story_id) {

इसके लिए:

    function(task) {

आप story_id कहीं भी पारित करने के लिए नहीं है - यह भीतरी समारोह में दायरे में पहले से ही है!

23/04/2009 को 13:39
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more