簡體   English   中英

jQuery Flot圖例中的事件處理程序

[英]Event handler in jquery flot legend

我正在用plot jquery繪制任意數量的數據集。 該圖的圖例是動態生成的,因為我沒有關於先驗有多少個數據集的信息。 我想要的是,每當用戶單擊該系列之一的標簽時,其圖形都會突出顯示。 我發現對數據集的數組重新排序可以完成這項工作。 問題是當用戶單擊圖例時。 我的圖例代碼是:

     legend: {
                noColumns: 0,

                labelFormatter: function(label, series){
                    var lab = '<a href="#" style="color:black" id="'+label.split('/')[1]+'">' + label.split('/')[0] + '</a>';
                    return lab;
                },
                backgroundColor: "#000",
                backgroundOpacity: 0.9,
                labelBoxBorderColor: "#000000",
                position: "nw"
            },

我試圖在labelFormatter函數內設置一個處理程序,但這不起作用。 另外,我嘗試為每個標簽設置一個類,並在外部函數之外訪問它們,但這也不起作用。 簡而言之,我不知道如何訪問標簽,也不知道何時何地放置事件處理程序。 請問你能幫幫我嗎?

我認為您所擁有的已經很近了。 我建議將一個類放在要從標簽格式化程序返回的錨標記上。 像這樣:

labelFormatter: function(label, series){
    var lab = '<a href="#" class="legendButton" style="color:black" id="'+label.split('/')[1]+'">' + label.split('/')[0] + '</a>';
    return lab;
}

然后,如果可以訪問圖表的占位符,則使用委托(jQuery的“ on”)可以在圖例上獲取事件。 例如:

$('#chartPlaceholderId').on('click', '.legendButton', function () {
    // do stuff
});

另外,您也許可以使用瀏覽器的元素檢查器查看是否有任何默認類可用於將事件綁定到圖例。 無論哪種方式,您都可能必須使用委派,以便在創建事件綁定之后呈現的任何圖例仍將注冊事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM