网站搜索

设计模式 - 有可能像这样编写一个 JavaScript 日志类吗?

我想编写一个日志类,可以像下面的代码一样使用。

// short-hand for logging. log('log message', [other parameter]); // full path for writing log. log.write('log message', [other parameter]); // print all log log.print([optional parameter]);

此外,它必须能够被写成流畅的模式。

log.write('log message

阅读更多 →

将字符串拆分以初始化 JavaScript 数组有哪些优点?

这种模式非常常见;我在包括 jQuery 源代码在内的一些地方见过它:

var arr = "word1 word2 word3".split(" ");

作为数组初始化“正常”方法的替代方案:

var arr1 = [ "word1", "word2", "word3" ]; var arr2 = new Array( "word1", "word2", "word3" );

字符串拆分方法的好处有哪些?

答案#1

来自 John Resig(jQuery 的创建者):

“我看到的唯一好处是源代码中的字符数和一条字符串,而不是多条。” Bingo!

现在想想,我认为 Closure 可能会优化这一点(不认为 YUIMin 做到了)。我可以再检查一下它。

此外,谷歌 JavaScript 风

阅读更多 →

jquery - Javascript 按钮监听器只触发一次?

我正在为我正在制作的网站制作一个幻灯片类型的轮播器。轮播器本身工作正常,但我正试图让幻灯片可以通过键盘的左右键前进/后退。我的代码是这样的:

$(document).keydown(function(e){ var currentPosition = 0; var slideWidth = 836; var slides = $('.slide'); var numberOfSlides = slides.length; var animLength = 600; if (e.keyCode == 37) { currentPosition = currentPosition-1; // Check to see if new position is unbounded, and wrap accordingly. checkForEnds(currentPosition); // Move slideInner

阅读更多 →

html - 无用户界面的富文本所见即所得编辑器(仅 JavaScript API)

我正在寻找一个非常干净的项目,以便向 contenteditable div 添加跨浏览器 JavaScript API。

如果它有用户界面,那么应该可以选择不加载它(而不是禁用它)或完全从源代码中移除。

我真正寻找的是基本功能,而不是过多关注向后兼容性,而是更清晰的代码。

我期望这个 API 提供的一些功能有:

  • 在光标位置插入 HTML 代码片段
  • 粘贴后清理内容(例如 span 和字体大小)
  • 返回光标当前所在的节点
  • 将新项目添加到项目列表

我想我可以用一些 jQuery 来编写它们,但如果有人已经有了,为什么不重复使用呢。

答案#1

你可以使用谷歌使用的那个 -

http://closure-library.googlecode.com/svn/docs/namespace_goog_editor.html

http://closure-li

阅读更多 →

html - 在 JavaScript 中创建彩色文本

我正在尝试编写一个函数,将某些文本打印到 <div id="1"> 标签中。

字符串应将某些索引值标记为不同的颜色。

我现在写的是获取我拥有的所有索引值并添加一个 <font color="color"> 标签,然后我使用 div1.innerHTML=result; 来添加它。

这需要很多工作,而且非常复杂。我有没有其他方法可以像我描述的那样创建一个字符串对象,而不使用这些 HTML 标签?

如果我能做到那样,我就直接使用 div1.appendChild(String);

答案#1

我通常不愿意推荐任何人使用他们自己尚未声称使用的库,但这是那种问题几乎直接要求用一个库作为答案的时候 :-)

看看 Lettering.JS。它正是为你描述的用途而设计的。它会将你的文本内

阅读更多 →

Javascript 将表单序列化为对象

我有一个表单,名字为 'config[display][x]', 'config[display][y]', 'config[port]',...,或者我可以创建不同的格式。我想把它序列化为 JS 对象,如

{config: display : {x : 'value', y : 'value'}, port : 'value' }

有人知道现有的解决方案吗?

附:我可以使用 jQuery 的 .serializeArray() 来序列化表单,但我会得到一个包含简单 {name : name, value

阅读更多 →

使用 JavaScript 对用户响应进行评分(比较两个数组)

我正在编写一个脚本,通过比较两个数组来评分用户的回答。(这是一个测验,看看他们对信息的逐字记忆情况。)我已经有了一些所需的代码,比如将用户回答转为小写并进行分割。我所需要的只是找到差异/错误数量的方法。例如:

var correctanswer = ["The","quick","brown","fox","jumped","over","the","lazy","dog"]; var useranswer = ["The","brown","fox","jumped","up","and","over","the","really","lazy","cat"]; a

阅读更多 →

柯里化 - 如何在 JavaScript 中部分应用成员函数?

我目前有一个部分应用函数,它看起来是这样的:

Function.prototype.curry = function() { var args = []; for(var i = 0; i < arguments.length; ++i) args.push(arguments[i]); return function() { for(var i = 0; i < arguments.length; ++i) args.push(arguments[i]); t

阅读更多 →

类型 - 在 JavaScript 中有一种所谓的真正的“位”吗?

我知道在 JavaScript 中有一个 Boolean 对象,但我想知道是否有办法访问其内部的原始单个 bit,即这个 Boolean 对象核心的那个位。

答案#1

我不知道在 JavaScript 中有任何 bit 类型。如果你担心节省空间并且需要存储大量的位,你可能可以将 int 与按位运算符结合使用。你会操作每个整数中的单个位(在大多数系统上是 32 位)。

答案#2

你无法访问它,但你可以假设 true 是 1,而 false 是 0。

阅读更多 →

jsf 2 - 我如何让 JSF 2.0 将 JS 包含为 'application/javascript' 而不是 'text/javascript'

在我们工作的 JSF 2.0 应用程序中,我们通过 <h:outputscript> 引入了几个 JavaScript 文件。

<h:outputScript library="javascript" name="DoStuff.js"/>

生成的 HTML 将它们引用为 'text/javascript'。

<script type="text/ja

阅读更多 →