gpt4 book ai didi

jquery - jqGrid 抛出 "Uncaught Syntax error, unrecognized expression: #"

转载 作者:行者123 更新时间:2023-12-03 21:47:13 26 4
gpt4 key购买 nike

大家好:) 对于冗长的代码 list ,我感到很抱歉,但我不确定我到底在哪里搞砸了。我正在编写一个仅供内部使用的 jquery 插件,用于编辑访问控制列表。

ACL 编辑器的一个组件是 jqGrid 插件,它是一个出色的网格实现,它带有自己的 AJAX 加载工具等。我以前使用过这个组件,但之前从未尝试过将它用作插件的子组件。 AJAX 请求正在正确发送(从我在 Chrome 调试器中看到的情况来看),这使我相信该错误并不存在于我的代码中,但我不确定此时该怎么做。

很抱歉代码量很大,但这是我能想到的最小示例。

/*global jQuery*/
"use strict"; /* Enable ECMAScript 5 Strict Mode if supported */
(function ($) {
var methods, defaults;

methods = {
init: function (options) {
var sid, pager, enumerateUrl;
if (this.data('isAclEditor')) {
$.error('The targeted element is already an ACL Editor.');
} else {
this.data('isAclEditor', true);
}
this.data('options', $.extend(true, {}, defaults, options));
/*
<div class="ui-jqgrid ui-widget ui-widget-content">
<div class="ui-jqgrid-titlebar ui-widget-header ui-helper-clearfix">
<span class="ui-jqgrid-title">TITLE</span>
</div>
<table class="sidList"></table>
<div class="sidPager"></div>
<div class="privSlideout" style="display:none;">
<table cellspacing="0" cellpadding="0" border="0">
<thead>
<tr>
<th class="ui-th-column ui-state-default" colspan="3" class="privLabel"></th>
</tr>
<tr>
<th class="ui-th-column ui-state-default" style="width: 50px;">Allow</th>
<th class="ui-th-column ui-state-default" style="width: 50px;">Deny</th>
<th class="ui-th-column ui-state-default" style="width: 520px;">Privilege</th>
</tr>
</thead>
<tbody class="privTable">
</tbody>
</table>
<button class="btnOk">Ok</button>
<button class="btnCancel">Cancel</button>
</div>
<div style="display:none;" class="newPrivPicker">
<div style="font-size: 10pt">
<table class="newPrivTable"></table>
<div class="newPrivPager"></div>
</div>
</div>
</div>
*/
this.html('<div class="ui-jqgrid ui-widget ui-widget-content"><div class="ui-jqgrid-titlebar ui-widget-header ui-helper-clearfix"><span class="ui-jqgrid-title">' + this.data('options').title + '</span></div><table class="sidList"></table><div class="sidPager"></div><div class="privSlideout" style="display:none;"><table cellspacing="0" cellpadding="0" border="0"><thead><tr><th class="ui-th-column ui-state-default" colspan="3" class="privLabel"></th></tr><tr><th class="ui-th-column ui-state-default" style="width: 50px;">Allow</th><th class="ui-th-column ui-state-default" style="width: 50px;">Deny</th><th class="ui-th-column ui-state-default" style="width: 520px;">Privilege</th></tr></thead><tbody class="privTable"></tbody></table><button class="btnOk">Ok</button><button class="btnCancel">Cancel</button></div><div style="display:none;" class="newPrivPicker"><div style="font-size: 10pt"><table class="newPrivTable"></table><div class="newPrivPager"></div></div></div></div>');
pager = $('.sidPager', this);
enumerateUrl = this.data('options').aclControllerUrl + '/enumerate/aclid/' + this.data('options').aclId;
sid = $('.sidList', this).jqGrid({
url: enumerateUrl,
datatype: 'json',
mtype: 'GET',
colNames: ['Type', 'Name'],
colModel: [
{name: 'type', index:'type', width: 20, align: 'center', sortable: false},
{name: 'displayName', index:'displayName', align: 'center', sortable: false}
],
rowNum: 10,
rowList: [10, 100, 1000],
autowidth: true,
height: 'auto',
forceFit: true,
gridview: true,
pager: pager
});
sid.navGrid(pager, {
edit:false,
add:false,
del:false,
search:false,
refresh:true,
refreshtitle: 'Refresh Users and Groups'
});
return this;
}
};

defaults = {
aclId: 0,
title: 'Permissions Editor',
aclControllerUrl: ''
};

$.fn.acleditor = function (method) {
if (methods[method]) {
return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
return methods.init.apply(this, arguments);
} else {
$.error('Method ' + method + ' does not exist on jQuery.AclEditor.');
}
return null;
};

}(jQuery));

为什么我在 Jquery.js 的第 75 行收到“未捕获的语法错误,无法识别的表达式:#”?

哦,我正在使用 jqgrid 3.8.1 和 jquery 1.4.2。

编辑:返回的 JSON 是:

{"rows":[{"id":"7109766F-DC8A-4134-8C1F-02F87A72DE9C","cell":["Group","Developers"]},{"id":"22EEB0C5-6792-4C24-8047-B187D38F63EC","cell":["Group","Users"]}],"page":1,"total":1,"records":2}

最佳答案

好的,对不起大家了。发现问题了——原来jqGrid保存了表标签的ID,然后使用该标签引用该表。给予<table> ID 解决了问题。

关于jquery - jqGrid 抛出 "Uncaught Syntax error, unrecognized expression: #",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4011429/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com