我收到了这个错误:
uncaught TypeError: Object [object Object] has no method 'on'
at jquery.handsontable.js:2258
我有一些看起来像这样的设置:
<script src="/javascripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script src="/javascripts/jquery-ui-1.8.12.custom.min.js" type="text/javascript"></script>
<script src="/javascripts/jquery.handsontable.js" type="text/javascript"></script>
<script src="/javascripts/jquery.simplemodal.1.4.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
var $j = jQuery.noConflict();
</script>
<div id="dataTable" class="dataTable"></div>
<script>
$j("#dataTable").handsontable();
var data = [
["", "Kia", "Nissan", "Toyota", "Honda"],
["2008", 10, 11, 12, 13],
["2009", 20, 11, 14, 13],
["2010", 30, 15, 12, 13]
];
$j("#dataTable").handsontable("loadData", data);
</script>
答案 0 :(得分:5)
你可能需要jQuery 1.7
jQuery 1.5没有.on
方法。引入它是为了替换.live()
并为常规与委托事件处理提供更一致的接口。
请注意,如果您大量使用.attr()
,则可能需要修改代码以在某些地方使用.prop()
- jQuery 1.6对.attr()
的工作方式进行了重大更改。
答案 1 :(得分:2)
由于使用了.on
以及旧版jQuery中没有的其他方法,handontable插件需要jQuery 1.9+。
您可以创建一个实现 .on
的小脚本,以便在适当的时候使用.bind
和.delegate
。