2014-10-16 4 views
0

У меня есть функция JavaScript, которая возвращает массив. И я собираю этот массив, как,Как использовать переменную, возвращаемую из события click?

<button onclick="var v = onclick1();">Click me</button> 

Я хочу использовать переменную v в остальной части приложения.

Я пытался сделать его глобальным, но не работает.

Могу ли я показать текст из массива V в пролете, который походит,

<span id="SP"> 

</span> 

С уважением

+0

Почему вы не переместите логику в функцию 'onclick1'? – undefined

+0

@Vohuman У меня есть логика в onclick, она написана в каком-то другом файле js, я хочу использовать его возвращаемое значение в остальном html. –

+0

Так определите другую функцию и используйте возвращаемое значение этой функции в ней. Текущая логика нарушена. – undefined

ответ

0

PFB код:

JS

var returnVal; 

    function onclick1(){ 
    // todo write your logic 
    var a= [2,2]; // some array to be returned 
    returnVal = a; 
    document.getElelmentById('SP').innerHtml = returnVal; 
    } 

HTML:

<button onclick="onclick1();">Click me</button> 
<span id="SP"> 

</span> 

Надеюсь, это поможет.

0

может быть, вы можете попробовать что-то вроде этого:

<button onclick=" v = onclick1();">Click me</button> 

<script> 
var v 
function onclick1(){ 
    var a= [2,2]; 
    return a; 
} 

$(document).ready(function(){ 

    document.addEventListener("click", function(){ // this part is only to show you that v got the returned vale. 
alert(v); 
}); 
}); 



    </script> 
0

Ваших переменной v всегда будет область видимости обработчика щелчка, и таким образом, чтобы сделать его доступным для остальной части приложения, единственного способом должен иметь другую переменную в более высокой области. Возможное решение - иметь глобальный объект для представления вашего приложения с свойством v.

var yourApp = yourApp || {}; 
yourApp.v = null; 

window.onload = function(){ 
    document.getElementById("yourbutton").addEventListener(function(){ 
     yourApp.v = onclick1(); 
    }, false); 
} 

Теперь в ваших других файлов сценариев, вы можете обратиться к yourApp.v.

Вы можете просто сделать v глобальным, но наличие большого количества отдельных глобалов не является, как правило, хорошей практикой (загрязнение глобальной области), однако наличие единого глобального объекта, чтобы содержать ваши другие переменные, является приемлемым.

Sidenote: Я использовал addEventListener, чтобы назначить обработчик события вашей кнопке, для которой требуется ID yourbutton, потому что это предпочтительнее встроенных обработчиков щелчков.

Смежные вопросы