1

我的 JSP 页面中有以下内容,但出现错误

Message: Object doesn't support this property or method

$("#projects").dataTable({

如果我删除

.makeEditable({
                   sAddURL: "addController"
                              });

那么没有js错误,我该如何解决这个问题?

JS代码

$(document).ready(function () {
    $("#projects").dataTable({ // error here
        "bServerSide": true,
        "sAjaxSource": "mycontroller",
        "bProcessing": true,
        "sPaginationType": "full_numbers",
        "bJQueryUI": true
    }).makeEditable({
        sAddURL: "addController"
    });
});

我有以下js文件

 <script src="scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
 <script src="scripts/jquery.dataTables.editable.js" type="text/javascript">
 </script>
 <script src="scripts/jquery.jeditable.js" type="text/javascript"></script>
 <script src="scripts/jquery.validate.js" type="text/javascript"></script>
 <script src="scripts/jquery-ui.js" type="text/javascript"></script>

 <script src="scripts/jquery.js" type="text/javascript"></script>
 <script src="scripts/jquery.dataTables.min.js" type="text/javascript"></script>
4

3 回答 3

6

您两次包含 jQuery 库,可能使用了两个不同的版本。scripts/jquery-1.4.4.min.js并且scripts/jquery.js都是 jQuery 库。

第二个将替换第一个,在此过程中,您将丢失添加到第一个实例的所有插件。由于您最终只使用了 dataTables 插件,因此该makeEditable调用将不起作用。这不是dataTable不存在的方法,错误只是在该行上报告,因为语句从那里开始。

删除 jQuery 库的第二个包含。如果它与 jQuery 库的 1.4.4 版本不兼容,您可能还需要不同版本的 dataTables 插件。或者使用更高版本的 jQuery。

于 2013-04-02T08:15:31.600 回答
2

好吧,@Guffa 已经充分回答了。如果你愿意,你可以接受他的回答。:)

我只是想补充一点,那就是jQuery版本之间的冲突。这是因为如果您使用的插件与您所包含的 jQuery 版本不兼容(一段时间发生在我身上)。您可以添加与该插件兼容的另一个 jQuery 版本,以及使用jQuery.noConflict()

于 2013-04-02T08:25:48.727 回答
0

根据您提供的内容,我只能假设在加载$('#projects').dataTable之前正在执行。jquery.dataTables.min.js

于 2013-04-02T08:15:11.340 回答