2015-07-10 21 views
1

我正在使用基於Web的工具,使用asp.net和Javascript和Jquery實現各種表並使其對用戶友好。爲此,我使用可愛的Datatables插件及其擴展名爲ColVis的隱藏選定列的選項。我現在試圖做的是添加另一個.click事件來列出由ColVis生成的列表中的項目,但是我很難用Jquery選擇正確的元素來附加函數。向ColVis列表項添加單擊事件

這是由ColVis生成的HTML。

<ul class="ColVis_collection ui-buttonset ui-buttonset-multi" style="..."> 
    <li class="colVis_select ui-button ui-state-default">...</li> 
    <li class="colVis_select ui-button ui-state-default">...</li> 
    ... 
</ul> 

等等。

我已經試過這就是:

$(".ul").on("click","li" , function (event) { 
       Cookies.set('columnsWebform', readingHeaders()); 
      }) 

要儘可能通用。但是我仍然無法響應點擊。

任何幫助將不勝感激。

隨溶液編輯

喬爾指出的選擇是錯誤的。儘管如此,這並不是全部問題。直到按下按鈕纔會生成列表的HTML代碼。

<button class="ColVis_Button ColVis_MasterButton"> 

因此,將clickevent偵聽器的創建連接到按下此按鈕解決了問題。

$(".ColVis_MasterButton").click(function() { 
      $("ul").on("click", "li", function() { 
       Cookies.set('columnsWebform', readingHeaders()); 
      }) 
     }); 
+0

歡迎堆棧溢出!您可以發佈您的解決方案作爲答案並接受它,這會將問題標記爲已關閉。 –

+0

Hi @ Gyrocode.com您好,我已經使用您的代碼,但它仍然無法正常工作 – anujeet

回答

2

這是工作解決方案。首先,選擇器需要用於標籤ul,而不是ul。

$("ul").on("click", "li", function() { 
      Cookies.set('columnsWebform', readingHeaders()); 
     }) 

雖然這並沒有解決整個問題。 直到按下按鈕纔會生成列表的HTML代碼。

<button class="ColVis_Button ColVis_MasterButton"> 

因此,將clickevent偵聽器的創建連接到按下此按鈕解決了問題。

$(".ColVis_MasterButton").click(function() { 
     $("ul").on("click", "li", function() { 
      Cookies.set('columnsWebform', readingHeaders()); 
     }) 
    }); 
0

使用$('ul')

目前您在使用.ul而不是ul標籤選擇類別ul

+0

是的,我發佈了這個問題後不久就意識到這個問題,但問題仍然存在,儘管選擇了正確的標籤。但我相信我已經找到了原因。 在點擊某個按鈕之前,HTML代碼實際上並未生成。由於我的「點擊」代碼是在document.ready期間執行的,因此HTML尚不存在。所以我們會在HTML生成後嘗試連接點擊事件監聽器。 謝謝你的快速回答。 – Nfourx

+0

是的,這就是要走的路。在HTML生成後綁定事件。 –

+0

完美解決問題,用解決方案更新了帖子。 (應該可以寫成對問題的回答嗎?)再次感謝。 – Nfourx