2015-05-30 1 views
2

Как передать переменные анонимной функции. Я хочу передать несколько переменных анонимной функции, основанной на функции, и создаст новую строку. В этом коде я хочу передать url, timestamp, id и plan.Как получить переменные в анонимной функции в jQuery?

<script> 
     jQuery(document).ready(function() { 
      console.log("check") 
      var newUrl=url+'?id='+id+'&timestamp='+timestamp+'&plan='+plan; 
      console.log(newUrl); 
      createStoryJS({ 
       type:  'timeline', 
       width:  '1250', 
       height:  '240', 
       source:  newUrl, 
       embed_id: 'my-timeline' 
      }); 
     }); 
    </script> 
+0

Где находится анонимная функция? – Satpal

+0

@ Satpal жаль, что я новичок в JS. Я пытаюсь передать несколько переменных в функции(). –

+0

Хорошо, откуда и как вы пытаетесь передать это – Satpal

ответ

1

Аргумента готового обработчика передаются с помощью JQuery и устанавливается на объект JQuery (см https://api.jquery.com/ready/> Aliasing в JQuery пространстве имен). Таким образом, вы не можете передать его в объявление функции в приведенном выше коде.

Вы можете установить его на глобальный объект или задать поле формы, а затем прочитать его внутри вашей функции. Скрипки для последнего - http://jsfiddle.net/eqz7410c/

HTML

<form> 
    <input id="b" type="hidden" value="123" /> 
</form> 

JS

$(document).ready(function() { 
    alert($("#b").val()) 
}); 
1

Вы можете объявить переменную с глобальной областью действия и использовать его в вызове функции, как показано ниже

var globalVar = 1; 
jQuery(document).ready(function() { 
    console.log(globalVar); 
}); 
0

Первый из jQuery(document).ready(function() {}); будет точкой входа документа, когда он будет готов для доступа. Существует несколько подходов к этому.

Идея заключается в том, что вам не нужно передавать ничего, кроме использования ресурсов, созданных вами в этой анонимной функции.

Я хочу передать несколько переменных в анонимную функцию, на основе функции, это создаст новую строку.

Я бы не рекомендовал использовать глобальные переменные. Эта функция, из которой вы, вероятно, получаете эти значения для id, timestamp и plan, должна вернуть вам этот жал, который вы можете назначить newUrl внутри функции готовности документа. Вы также можете использовать closure.

function returnUrl(){ 
    // code to calculate id, timestamp and path.. 
    // .... 
    // .... 
    return url+'?id='+id+'&timestamp='+timestamp+'&plan='+plan; 
} 

jQuery(document).ready(function() { 
// DOM ready to access.. 
    console.log("check") 
    var newUrl = returnUrl(); 
    console.log(newUrl); 
    createStoryJS({ 
     type:  'timeline', 
     width:  '1250', 
     height:  '240', 
     source:  newUrl, 
     embed_id: 'my-timeline' 
    }); 
});