2011-06-26 42 views
4

我有一個函數changeGraph()裏面的jQuery包裝,我需要從外部調用某種方式我需要訪問函數。使用setData從基於jQuery的圖形庫海軍報

源正在尋找這樣的:

function changeGraph(){ 
    // I need to access $.plot.setData somehow 
}; 

var d2 = [[0, 0], [20, 300000]]; 

$(function() {    
    $.plot($("#placeholder"), 
    [{color: "#000000", data: d2}], 
    { 

    series: { 
     lines: { show: true, fill:true, fillColor: {colors: [ "#d1ddea","#8e959d"]}}, 
     points: { show: false } 
      } 
     } 
    ); 


}); 

我怎樣才能做到這一點

+0

你可以移動函數範圍之外的函數嗎? –

+0

我需要訪問範圍$ .plot($(「#placeholder」)內的這個變量,我不知道在範圍外做這件事 – Hedge

+0

@Hedge - 你能發表更多的代碼嗎?我不知道爲什麼你不能在全局範圍內使用'changeGraph()'你可能會考慮使用jQuery的'$ .data()'將數據傳遞到你的函數中 –

回答

8
var changeGraph; 

$(function() { 

    changeGraph = function() { 
     // Need to access $.plot($("#placeholder") here 
    }; 

}); 

changeGraph(); // call this when document is ready at least 
+0

http://jsfiddle.net/74Xff/ –

+0

@Karolis - 這可以工作。 –

+0

http://jsfiddle.net/74Xff/1/ –

2

你應該將你的函數的回調函數之外

+0

如何從範圍內訪問$ .plot($(「#placeholder」)? – Hedge

+0

@Hedge - 不包括'$ .plot()'在你的問題中,你需要發佈更多的代碼(優先在你的'function(){}')裏面放下一切東西。 –

2
function changeGraph() { 
    // ... 
} 
$(function() { 
    changeGraph(); 
}); 
+0

我不太明白這一點。第二個changeGraph()只是執行函數,不是嗎?我需要從範圍內訪問另一個變量。 – Hedge

+0

哪個範圍?你可以使用'function changeGraph(){$ .plot(...);如果你想。這將仍然有效。 – jtbandes

+1

也許你誤解了包裝'$(function(){...});'。這只是設置了一個函數,在文檔加載時執行(或者DOM準備好進行操作)。你仍然可以在其他地方使用'$'。 – jtbandes