2010-10-15 33 views
1

在fullCalendar(),一個jQuery插件裏面,我可以得到view.visStart的值。在函數view.visStart之外是不可用的。我怎麼能得到view.visStart(這是不好的,因爲它是全球?),或者如何在插件調用中插入點擊功能?謝謝。如何在插件調用中插入點擊功能?

$('#calendar').fullCalendar({ 
    events: "js/events.json" 
    console.log(view.visStart); //value is returned 
}); 

$('.fc-button-next').click(function() { 
    console.log(view.visStart); //view is not defined 
}); 

回答

1

最簡單的方法是使用父範圍的變量。

你必須注意如何以及何時改變這個變量。

你也可以以某種方式返回變量。或者如果你想讓它寫保護,你可以返回一個返回變量的函數。但我不確定return電話會如何影響.fullCalendar(),因爲我不知道它是如何工作的。

(function() {      // <== Scope for your stuff 
    var myVis;      // myVis is available everywhere in your scope 
            // but it is not global 

    $(function() {            // <== Doc ready 
     $('#calendar').fullCalendar({ 
      events: "js/events.json" 
      cmyVis = view.visStart; //set myVis 
     }); 

     $('.fc-button-next').click(function() { 
      console.log(myVis);        //view is not defined 
     }); 
    }); 
}()); 
+0

這就是我一直在尋找的東西。 – orolo 2010-10-16 15:23:58

1

也許這並不是你所要求的,但如果你想要一個jQuery中綁定點擊功能的插件,您可以使用live()

首先檢查所呈現的HTML,看看插件插入了什麼 - 找到您試圖將點擊功能綁定到的html元素的id或類。即使在該行被調用並且該元素稍後被創建之後,live()也會綁定任何元素。

$('.pluginlink').live('click', function() { 
    //code 
}); 

我不知道這是你在找什麼,但部分問題是如何在插件中插入點擊功能。祝你好運!

+0

+1謝謝。好。我會嘗試live()以查看是否可以使點擊正常工作。 – orolo 2010-10-16 15:23:03