0

我在一个文件中有以下内容:

<script type="text/javascript">

function refreshGridSetup() {

    $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });

</script>

然后在此之后我有:

<script src="/Scripts/admin/jquery.dataTables.js"></script>

我是否正确地说第一个代码是扩展数据表的原型?

在定义数据表的代码之前有这个可以吗?

4

3 回答 3

3

不,因为$.fn.dataTableExt.oStdClasses还不存在。您必须首先包含 dataTables 脚本,因为 jQuery 原型在运行之前不会被扩展。

通过在 dataTables 创建它的命名空间之前运行您的代码,您将收到如下错误:

未捕获的类型错误:无法读取未定义的属性“oStdClasses”

编辑:对不起,我没有注意到这个refreshGridSetup功能(我猜缺少的右花括号只是问题中的一个错字?)。如果在包含 dataTables之后才调用该函数,则不会有任何问题。

于 2012-09-27T13:09:20.183 回答
1

在上述情况下没关系,因为在页面加载时,定义的函数没有调用。我们需要在调用某个事件时加载原型或函数。

于 2012-09-27T13:09:12.037 回答
1
 $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });

上面的代码在您调用时执行,refreshGridSetup因此您的代码很好。refreshGridSetup但是一旦加载了所需的所有资源,您就应该调用。

但是您忘记关闭函数 refreshGridSetup 的主体。你的代码应该是

<script type="text/javascript">

function refreshGridSetup() {

    $.extend($.fn.dataTableExt.oStdClasses, {
        sWrapper: 'no-margin last-child'
    });
}// missing
</script>
于 2012-09-27T13:18:01.990 回答