我有以下DataTable(全宽css类设置宽度= 100%)
<table class="datatable full-width">
<thead>
<th>LOB</th>
<th>Creditor Line 1</th>
<th>Creditor Line 2</th>
<th>Address</th>
<th>City</th>
<th>State</th>
<th>Zip</th>
<th></th>
</thead>
<tbody>
...
</tbody>
</table>
Run Code Online (Sandbox Code Playgroud)
使用Javascript:
var profileTable =
$(".datatable").dataTable({
"iDisplayLength": 25,
"bDestroy": true,
"bJQueryUI": true,
"sPaginationType": "full_numbers",
"bAutoWidth": false
});
Run Code Online (Sandbox Code Playgroud)
一切都工作正常,直到有一个长文本字符串的记录...当一个记录显示非常长的文本时,数据表溢出在页面右侧.(见下面的截图,红线是页面应该结束的地方) http://i1109.photobucket.com/albums/h430/tbarbedo/overflow.jpg
有人能告诉我如何将文本包装在单元格中或防止出现溢出问题?
我试过'table-layout:fixed'...这可以防止溢出但是将所有列设置为相同的宽度.
谢谢
在jQuery中是否存在"全局"unbind函数,这样我就能够从给定的命名空间中删除所有绑定事件?例如:
// assume these are the events bound to different elements
$('#foo').bind('click.myNS', ...);
$('#bar').bind('keyup.myNS', ...);
$('#baz').bind('dblclick.myNS', ...);
// magic occurs here...
$.magicalGlobalUnbindFunction('.myNS');
// ...and afterwards, the three binds from above are gone
Run Code Online (Sandbox Code Playgroud)
我见过的所有非绑定示例都需要先选择一些元素.我认为从技术上讲,你可以这样做$('*').unbind('.myNS'),但这看起来非常低效.
从Node.js运行基本的JSDoc编译/渲染之后:
jsdoc file1.js file2.js
Run Code Online (Sandbox Code Playgroud)
我使用目录"out"中的默认模板获得格式良好的文档.几乎所有都如预期!
但是在打开文档时,它总是在index.html页面上显示"Home",在该初始页面上没有内容,并且在侧边栏导航中显示"Home".
我如何以及在何处注明项目名称以取代"Home"?我还想看一个项目描述,以及作者和版权信息.
这似乎是JSDoc中最基本的事情,但我无法找到这些信息!基于我在互联网上发现的一些随机文章,我尝试了以下内容:
/**
* This JavaScript file contains foo bar baz...
*
* @projectname Project Name
* @version 0.1
* @author Greg Pettit
* @copyright 2015
*
*/
Run Code Online (Sandbox Code Playgroud)
但我没有爱.
[编辑添加:]
发现了@file/@fileOverview/@overview(所有同义词)指令,这有点帮助,因为我现在可以为每个文件描述和设置版权/作者信息:
/**
* @file Project description which renders below the individual filename and therefore isn't a real overview blurb.
*
* @version 0.1
* @author Greg Pettit
* @copyright 2015
*
*/
Run Code Online (Sandbox Code Playgroud)
这留下了两个"问题"来解决:
概述说明; 我认为@file可以满足我的大多数需求,但由于它是每个文件,我仍然会喜欢在包含文件的描述之前出现的"简介"类型段落或概述段落.
用自定义文本替换"Home"文本
我正在基于php的网站上使用javascript/jquery,我必须在页面中的事件上重定向页面.
比方说,点击"点击我"按钮"page1.php",页面应重定向到" page2.php".必须使用javascript/jquery完成此重定向.两个页面都在同一个文件夹中,重定向代码应使用"RELATIVE LINKS".
现在,如果我给出绝对链接,我可以重定向page2.php,但有人可以让我知道如何使用相对链接做同样的事情吗?
就像是:
window.location.href = 'page2.php';
Run Code Online (Sandbox Code Playgroud)
谢谢.
感谢这里找到的答案:
我的JavaScript文档组织良好,格式正确.每个命名空间都是其中包含的方法的"父".但是,导航并不像我想的那样精细.
通过简单的命令(jsdoc file1.js file2.js)使用node.js工具编译/渲染后,文档将生成为默认模板.此默认模板在侧栏导航中显示我的命名空间,但它不显示每个包含的方法.
您可以通过向@class每个方法添加指令来伪造方法列表,但正如我们所知,它们实际上不是类.
我很想看到像这样的侧边栏导航:
My Project
- namespace 1
- method.a
- method.b
- method.c
-namespace 2
- method.d
- method.e
Run Code Online (Sandbox Code Playgroud)
任何我忽略的文档方向都将不胜感激.
[编辑添加:]
通过实验,@class几乎完全符合我的要求,但有一些例外:
它列出了名称空间之上的类.我不喜欢这样,因为名称空间是"父母".
JavaScript在这个意义上没有类.不是那种被称为"类"的命名法.在阅读文档以查看"类"列表时,它会创建一个奇怪的断开连接.
它自动添加"新"运算符.并非所有方法都有构造函数......你可以看到问题!
[编辑:示例代码]
所以这是目前的结构.在我使用JSDoc注释对其进行注释之前,这是基本方法:
var app = app || {};
app.utils = {
whizbang: function() {},
geegolly: function() {}
};
app.render = {
thestuff: function(params) {},
thethings: function(params) {}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,使用对象文字表示法,顶级是整个应用程序的"命名空间",但在其中有用于不同目的的子命名空间.在这里,我有一个特定于实用程序的子命名空间,另一个特定于渲染的子命名空间.每个都可以有属性,但更重要的是它们都包含函数.这些功能应出现在侧边栏中.现在用我目前的JSDoc模式充实它:
/**
* @file MyApp.js This is an awesome description of MyApp.js
*
* …Run Code Online (Sandbox Code Playgroud) 非常短版本:是否有人通过AJAX在IE中通过SSL成功请求本地资源?我无法解决获得"拒绝访问"错误的问题.
更长的版本:
我正在使用AJAX从运行本地Web服务的应用程序中检索JSON.Web服务通道已加密,因此,如果通过HTTPS提供远程站点,则不会出现"安全页面上的不安全资源"错误.
所以,在地址栏中是一个某种类型的远程站点...... mysite.com.它正在接收来自的信息https://localhost/.
Web服务正在为CORS设置正确的标头,一切都可以在Chrome和Firefox中使用.在IE中,如果我将https://localhost资源放入地址栏,则会返回并显示正确的资源.但是,当使用AJAX(不仅仅是地址栏)时,IE中的安全设置拒绝访问.这在此处记录(部分):
当ajax目标是localhost时,IE 10和11中的访问被拒绝
一个回复中唯一合适的解决方案是将请求域(在本例中为mysite.com)添加到受信任的站点.这有效,但我们宁愿没有用户干预......指向如何添加可信站点的知识库文章几乎不是一个很好的用户体验.对于该问题的其他回复是无效的,原因如下 - >
一些更绊脚石,我发现了这个:
CORS与IE,XMLHttpRequest和ssl(https)
其中包含一个回复,其中包含IE中AJAX请求的包装器.它似乎很有希望,但事实证明,IE11现在已经弃用了XDomainRequest API.对于微软而言,这可能是正确的做法......但是现在向XDR对象添加void onProgress处理程序的"黑客"解决方法显然不是一种选择,而且曾经很有前途的解决方案包装器被渲染为无效.
有没有人遇到过:
a)一种获取这些请求而无需修改IE中可信站点的方法?换句话说,第二个链接中的变通方法的更新版本?
b)作为"次佳"案例:提示用户将站点添加到其受信任区域的方法?"mysite.com希望被添加到您的受信任区域.确认是/否"并完成它,没有他们实际需要打开他们的本机设置对话并手动完成它?
我正在使用jquery数据表,它使用该sAjaxSource属性动态加载一些JSON .一切都很好,除了加载的内容被视为潜在的标记,所以如果单元格中的文本包含<或某些东西,事情会变得奇怪.
在将数据加载到表中之前,如何让数据表转义我的数据?我不想做服务器端,因为服务器不应该关心客户端将如何处理数据.
上下文:我有一个网络工作者认为"订阅"经由网页套接字从后端数据更新,然后将其发布到经由DataTables.net渲染为了提高效率的图,相加的数据被向下推WebSocket的作为部分记录(即,仅一行).
由于数据与DataTable分离(即,它不使用Ajax API;它基本上是一个JavaScript源代码),我不能只添加行并渲染表.如果触发了同一行的两次推送,我最终会重复行.
所以,我掀起了一个小插件:
$.fn.dataTable.Api.register('deDupe', function (dataSet, idColumn) {
idColumn = idColumn || 0;
var columnData = this.columns().data()[idColumn];
for(var i=0; i < dataSet.length; i++) {
var thisId = dataSet[i].id;
var matchedIndex = columnData.indexOf(thisId);
if(matchedIndex > -1) {
var matchedRow = $(this.rows().nodes()[matchedIndex]);
this.row(matchedRow).remove();
}
}
// return "this" for chaining
return this;
});
Run Code Online (Sandbox Code Playgroud)
(不要嘲笑我在老式的"for"循环中获得安慰!)
然后在使用中,我这样做:
myTable.deDupe(dataSet).rows.add(dataSet).draw();
Run Code Online (Sandbox Code Playgroud)
接收的数据,然后该方法更新表已有的传入行,它包含在"数据集",然后我通过为这是指包含用于去欺骗目的的唯一ID的列中的列索引.请注意,在代码执行中,我不是删除传入的副本,而是删除上一行,然后添加传入的副本.在某些情况下,行包含更新的数据,我真的只关心ID级别的重复数据删除,而不是内容级别...总是只是盲目地使用最新数据.
所以有几个问题:
有没有更好的方法呢?我会喜欢看到一个核心选项,但我没有遇到过.这似乎是相对常见的功能.我在这里疯了,重新发明轮子?(换句话说,初始化选项?)
在条件检查中是否存在匹配,您会看到这一行:var matchedRow = $(this.rows().nodes()[matchedIndex]);这让我觉得很古怪,但我无法理解其他方法来识别.remove()链中使用的行.在我看来,我已经知道了行的索引,所以我认为类似的东西matchedRow = this.rows(matchedIndex)会工作,但我找不到那个或类似的东西.因此,我不仅要深入研究,rows().nodes()而且整个事情都被包装在jQuery中,然后被传递到.row(matchedRow)'.它似乎是如此重叠嵌套和包装的东西,我觉得我应该已经可以直接访问.
别误会我的意思; 代码"工作"并修复它可能是微优化.但它让我觉得非常复杂,给了我一些代码味道,我想为维护开发人员避免这种情况.
货物集体开发商(那些贡献了开发者主题的人)似乎迷恋于自动化.因此,我似乎无法找到一个代码片段来展示如何进行传统的分页.IE浏览器.当我将文章的最大数量设置为"3"时,它一次只显示3个.
我不介意我可能需要提供款式; 我只需要知道获得原始分页所需的标记和把手的组合.
文档提示了一些"自动化"视图,但没有提供如何使用它们的详细描述,除非我遗漏了一些内容:视图和模型文档.
因此,尝试是猜测.我的第一次尝试是:
<div class="pagination" data-view="Pagination"></div>
Run Code Online (Sandbox Code Playgroud)
看起来您需要data-set匹配,但它似乎并不表示哪些数据集使用有用的数据填充分页视图.
我尝试了一些事情(没有点列出所有内容,因为他们试图在jar尝试中捕获闪电),如下所示:
<div class="pag_nav" data-view="Pagination" data-set="Navigation">
{{Navigation}}
</div>
Run Code Online (Sandbox Code Playgroud)
我认为上述内容没有任何特别意义,我没有任何期望它会起作用.只是想说明我尝试了一些事情,因为我找不到任何样本或适当的文档.
对于这两件事中的任何一件,正确方向的一点将不胜感激!