2016-09-06 56 views
1

我想使用DataTables(一個jQuery插件)來顯示數據。 安裝和設置完成,通過DataTables在我的數據中搜索到目前爲止工作正常。 我使用DataTables v1.10.12,我的jQuery堅持到1.9.1。如何禁用數據表中的鍵綁定

我想禁用事件的綁定,或根本沒有事件 - 我該怎麼做?

背景

我開發第三方應用的插件。這個應用程序封裝了jQuery,我不能改變它。

當使用數據表,我遇到了一個錯誤

TypeError: Cannot read property 'length' of undefined 

現在,我通過

jQuery("#my-table").DataTable({"ordering": false, "paging":false}); 

我不知道,在這個錯誤來自於解決此問題的工作,但我有堆棧跟蹤,我看到,如果我不綁定一些事件,這個問題不會發生。當然,這不是一個好的解決方案,但暫時是唯一的,我可以使用。

Uncaught TypeError: Cannot read property 'length' of undefined 
jQuery.extend.map @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:876 
(anonymous function) @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:30520 
keyHandler @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:30523 
jQuery.event.add @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:4926 
jQuery.event.add @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:10312 
... 
jQuery.fn.extend.bind @ batch.js?analytics-enabled=true&bamboo-nps-dark-feature=true&devtoolbar=true&is-server-instance=tru…:7673 
_fnBindAction @ jquery.dataTables.js:6533 
_fnSortAttachListener @ jquery.dataTables.js:6154 
_fnBuildHead @ jquery.dataTables.js:3210 
_fnInitialise @ jquery.dataTables.js:4682 
(anonymous function) @ jquery.dataTables.js:1339 

有了:

jquery.dataTables.js:6526 function _fnBindAction(n, oData, fn) 
jquery.dataTables.js:6527 { 
jquery.dataTables.js:6528  $(n) 
jquery.dataTables.js:6529   .bind('click.DT', oData, function (e) { 
jquery.dataTables.js:6530     n.blur(); // Remove focus outline for mouse users 
jquery.dataTables.js:6531     fn(e); 
jquery.dataTables.js:6532    }) 
jquery.dataTables.js:6533   .bind('keypress.DT', oData, function (e){ 
+0

豈不關閉()工作給它DT選擇,並通過事件 – Viney

+0

試了一下,截至https://datatables.net/reference/api/off()描述? - 沒有幫助 我的TypeError發生在DataTables構造函數中。幫助,因爲事件發生後我的錯誤發生 - 但感謝輸入! –

+0

顯示'#my-table'的HTML標記,很可能與'thead'和'tbody'元素的列不匹配或其他一些結構性問題。 –

回答

1

今天得到了同樣的問題JIRA。 這實際上是Atlassian AUI中的一個錯誤,因爲它們覆蓋了jquery-hotkey中的一些代碼,請參閱https://ecosystem.atlassian.net/browse/AUI-1283https://bitbucket.org/atlassian/aui/diff/src/js/jquery/jquery.hotkeys.js?diff2=3a600c290f9c
DataTables嘗試註冊它自己的熱鍵並失敗。

要解決它,你可以

  • 更新您的竹子爲新版本
  • 刪除從數據表的鍵綁定,這意味着刪除「.bind(‘keypress.DT’...」在jquery.dataTables.js#_fnBindAction
+0

感謝您的輸入,我會看看它。 –

相關問題