2016-03-21 2 views
0

Этот мой код.JQuery: Как получить переменную внешнюю функцию события

/** 
    Sticky Header 
    **/ 
    var $h_height; 

    $(".site-header").sticky({ 
     topSpacing:0, 
    }); 
    $('.site-header').on('sticky-start', function() { 
     $h_height = $(this).outerHeight(); 
    }); 
    $('.site-header').on('sticky-end', function() { $(this).parent().css('height', 'auto'); }); 

    console.log($h_height); 

Я хотел бы поместить наши переменные ($ h_height) из функции. Я использовал console.log для отображения. это показать неопределенными

+0

Перемещение 'console.log ($ h_height);' внутри обработчика. Проверьте [this] (http://stackoverflow.com/questions/36100698/how-to-add-value-to-an-array-on-click-event) post – Tushar

+0

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

+1

Ну, в принципе, он МОЖЕТ использоваться вне функции. Вы просто console.logging его до его определения. Если вы установите setTimeout (console.log ($ h_height), 1000); вы увидите, что это будет определено, потому что вы даете время загрузки страницы. – KyleK

ответ

1

сделать глобальные переменные в Jquery

var a_href; 
jQuery(function(){ 
    $('sth a').on('click', function(e){ 
     a_href = $(this).attr('href'); 

      console.log(a_href); 
     //output is href value of clicked link 

     e.preventDefault(); 
    } 
}) 

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

Jquery Скрипки Чтобы показать, как Trigger значение глобальной переменной, в Jquery

//Global Variable 
 
var a_href; 
 

 
//Global Variable Value Triggered After Button1 Click 
 
$('#bt').on('click', function(e){ 
 
     a_href = $("#tx").val(); 
 

 
    alert(a_href); 
 
      //console.log(a_href); 
 
     //output is href value of clicked link 
 

 
     e.preventDefault(); 
 
    }); 
 
    
 
    //Global Variable Value Triggered After Button2 Click 
 
    $('#bt1').on('click', function(e){ 
 
     a_href = $("#tx1").val(); 
 

 
     alert(a_href); 
 
      //console.log(a_href); 
 
     //output is href value of clicked link 
 

 
     e.preventDefault(); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" value="hh" id="tx" /> 
 
<input type="button" value="Button1" id="bt" /> 
 
<br/> 
 
<br/> 
 
<input type="text" value="hh1" id="tx1" /> 
 

 
<input type="button" value="Button2" id="bt1" />

+0

@JayzanarakProgrammerLoso, чтобы заставить переменные global попробовать объявить их в глобальной области. –

+0

Я делаю так, как вы говорите. Но это не сработало. Я хотел бы получить некоторые переменные, которые можно использовать вне обработчика. $ ('. site-header'). on ('sticky-start', function() { $ h_height = $ (this) .outerHeight(); }); console.log ($ h_height); –

+0

@JayzanarakProgrammerLoso Я собираюсь добавить скрипт к моему ответу, который будет работать как глобальная переменная в jquery. Вы можете получить ссылку от него. –

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