小编Gre*_*tit的帖子

jQuery DataTable溢出和文本换行问题

我有以下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'...这可以防止溢出但是将所有列设置为相同的宽度.

谢谢

html css jquery datatables asp.net-mvc-3

37
推荐指数
5
解决办法
9万
查看次数

您如何解除特定命名空间中的所有jQuery事件的绑定?

在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'),但这看起来非常低效.

jquery events

32
推荐指数
3
解决办法
6684
查看次数

从字符串列表中删除前缀

如何从字符串元素数组中删除子字符串(前缀)?(从每个元素中删除子字符串)

javascript string jquery

32
推荐指数
4
解决办法
3万
查看次数

JSDoc的默认"主页"文本和内容

从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)

这留下了两个"问题"来解决:

  1. 概述说明; 我认为@file可以满足我的大多数需求,但由于它是每个文件,我仍然会喜欢在包含文件的描述之前出现的"简介"类型段落或概述段落.

  2. 用自定义文本替换"Home"文本

javascript jsdoc jsdoc3

19
推荐指数
3
解决办法
7077
查看次数

如何使用javascript进行相对路径重定向?

我正在基于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 jquery

16
推荐指数
3
解决办法
7万
查看次数

JSDoc侧栏中的嵌套方法

感谢这里找到的答案:

/sf/answers/1353545651/

我的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)

javascript jsdoc jsdoc3

14
推荐指数
1
解决办法
1446
查看次数

使用IE11 +访问的CORS使用SSL拒绝访问localhost

非常短版本:是否有人通过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希望被添加到您的受信任区域.确认是/否"并完成它,没有他们实际需要打开他们的本机设置对话并手动完成它?

javascript ajax ssl internet-explorer cors

11
推荐指数
1
解决办法
7081
查看次数

在JSON驱动的jQuery数据表中转义标记?

我正在使用jquery数据表,它使用该sAjaxSource属性动态加载一些JSON .一切都很好,除了加载的内容被视为潜在的标记,所以如果单元格中的文本包含<或某些东西,事情会变得奇怪.

在将数据加载到表中之前,如何让数据表转义我的数据?我不想做服务器端,因为服务器不应该关心客户端将如何处理数据.

javascript jquery datatables

9
推荐指数
1
解决办法
4064
查看次数

消除DataTables.net中的重复行

上下文:我有一个网络工作者认为"订阅"经由网页套接字从后端数据更新,然后将其发布到经由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级别的重复数据删除,而不是内容级别...总是只是盲目地使用最新数据.

所以有几个问题:

  1. 有没有更好的方法呢?我会喜欢看到一个核心选​​项,但我没有遇到过.这似乎是相对常见的功能.我在这里疯了,重新发明轮子?(换句话说,初始化选项?)

  2. 在条件检查中是否存在匹配,您会看到这一行:var matchedRow = $(this.rows().nodes()[matchedIndex]);这让我觉得很古怪,但我无法理解其他方法来识别.remove()链中使用的行.在我看来,我已经知道了行的索引,所以我认为类似的东西matchedRow = this.rows(matchedIndex)会工作,但我找不到那个或类似的东西.因此,我不仅要深入研究,rows().nodes()而且整个事情都被包装在jQuery中,然后被传递到.row(matchedRow)'.它似乎是如此重叠嵌套和包装的东西,我觉得我应该已经可以直接访问.

别误会我的意思; 代码"工作"并修复它可能是微优化.但它让我觉得非常复杂,给了我一些代码味道,我想为维护开发人员避免这种情况.

datatables

8
推荐指数
1
解决办法
206
查看次数

货物集体传统的分页

货物集体开发商(那些贡献了开发者主题的人)似乎迷恋于自动化.因此,我似乎无法找到一个代码片段来展示如何进行传统的分页.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)

我认为上述内容没有任何特别意义,我没有任何期望它会起作用.只是想说明我尝试了一些事情,因为我找不到任何样本或适当的文档.

对于这两件事中的任何一件,正确方向的一点将不胜感激!

javascript handlebars.js

7
推荐指数
1
解决办法
265
查看次数