2015-02-28 4 views
-7
<button type="button" class="metric">Metric</button> 
<button type="button" class="imperial">Imperial</button> 
<script> 
jQuery(function($){ 
    $('.metric').click(function(){ 
     count = 0; 
    }); 
    $('.imperial').click(function(){ 
     count = 1; 
    }); 
}); 
console.log(count);  
</script> 

В настоящее время я получаю undefinded с моей консоли. Есть ли способ получить переменную из jquery в javascript vannila?Есть ли способ передать переменную из jquery в javascript?

+7

jQuery ** - ** стандартный Javascript. Где ваш 'console.log' в вашем коде? Обратите внимание, что если вы не указали переменную 'count' в другом месте, она будет' undefined', пока вы не нажмете '.metric' или' .imperial'. – dfsq

+2

Этот вопрос невозможно ответить в текущей форме. Нам нужен больше контекста. Попытайтесь собрать это вместе [jsfiddle] (http://jsfiddle.net/) или даже лучше [фрагмент стека] (http://blog.stackoverflow.com/2014/09/introducing-runnable-javascript-css- and-html-code-snippets /) - который воспроизводит описанное поведение. –

+0

jQuery - это всего лишь куча функций JavaScript, написанных другими людьми. Вы передаете данные между функциями так же, как обычно. – Quentin

ответ

-1

jQuery - это просто библиотека javascript, поэтому это javascript. Если вы хотите получить (и установить) значение count во всем мире, я бы рекомендовал вам определить его как глобальный, так что его легче читать/контролировать код.

var count; //global 

jQuery(function($){ 
    $('.metric').click(function(){ 
     count = 0; 
    }); 
    $('.imperial').click(function(){ 
     count = 1; 
    }); 
}); 

function test() { 
    console.log(count);  
} 

Если запустить test() в первый раз переменная count будет неопределенным, поскольку он не установлен, пока вы не нажали на него (то значение 0 или 1)

+2

Так как не было 'var count;' в коде, предоставленном OP, 'count' был глобальным в любом случае. –

+0

@ t.niese - ах. на самом деле не думал об этом - это правда, хотя я считаю, что это хорошо, чтобы определить его как глобальное для лучшей структуры кода. Я обновил свой ответ. – bestprogrammerintheworld

+0

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

3

Вы регистрируетесь значение count, когда элемент script разобран и выполнен в первый раз. То есть перед нажатием кнопок (и, поскольку у вас есть обработчик ready в игре, также до того, как обработчики событий были даже назначены), так и до того, как вы указали значение count.

Поскольку вы не объявили count на этом этапе, он не должен регистрировать его как имеющее значение undefined, но сообщите об ошибке: Uncaught ReferenceError: count is not defined.

Если вы хотите увидеть новое значение после того, как нажали кнопку, вам нужно будет снова войти в консоль после того, как вы это сделали. (например, путем помещения вызова console.log в каждую из ваших обработчиков событий кликов).

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