2016-03-21 62 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);'的處理程序中。檢查[這](http://stackoverflow.com/questions/36100698/how-to-add-value-to-an-array-on-click-event)後 – 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的小提琴click事件的特定事件後設置爲顯示如何觸發全局變量的值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爲了讓變量全局嘗試在全局範圍聲明它 –

+0

我按照你說的方式做。但它沒有奏效。我想獲得一些可以在處理程序之外使用的變量。 $('。site-header')。on('sticky-start',function(){ $ h_height = $(this).outerHeight(); });的console.log($ h_height); –

+0

@JayzanarakProgrammerLoso我將添加一個小提琴來我的答案,將像jQuery中的全局變量一樣工作,你可以從中獲得參考 –