小编nor*_*rth的帖子

jQuery代码组织和性能

在对这个主题进行了一些研究之后,我一直在尝试使用模式来组织我的jQuery代码(例如,Rebecca Murphy 在jQuery会议上做过这方面的演示).

昨天我检查了(显示)模块模式.结果看起来有点像我认为的YUI语法:

//global namespace MyNameSpace
if(typeof MNS=="undefined"||!MNS){var MNS={};}

//obfuscate module, just serving as a very simple example
MNS.obfuscate = function(){
    //function to create an email address from obfuscated '@'
    var email = function(){
        $('span.email').each(function(){
            var emailAddress = $(this).html().replace(' [ @ ] ','@');
            $(this).html('<a href="mailto:' + emailAddress + '">' + emailAddress + '</a>');

        });
    };    
    return {
        email: email
    };    
}();

//using the module when the dom's ready
jQuery(document).ready(function($){
    MNS.obfuscate.email();
});
Run Code Online (Sandbox Code Playgroud)

最后我有几个模块.一些自然包括"私有成员",在这种情况下,它意味着变量和/或函数,这些变量和/或函数仅对该模块中的其他函数很重要,因此不会在return语句中结束.

我认为将模块中的部分连接(与搜索有关的所有内容)组合在一个模块中是有意义的,给出了整个结构.

但在写完这篇文章 …

javascript performance jquery design-patterns organization

12
推荐指数
1
解决办法
1500
查看次数

setTimeout函数中的变量(jQuery)

我正在尝试在setTimeout函数中使用jQuery语句,但我没有让它工作.我尝试了很多变体,比如这个(我使用'this'因为setTimeout在每个函数中,并且选择器被缓存/存储在一个对象中,因此$ selector):

setTimeout("" + this.$selector + ".val('" + this.savVal + "')", 1);
Run Code Online (Sandbox Code Playgroud)

我该怎么写呢?

谢谢!

javascript variables jquery timeout

8
推荐指数
3
解决办法
5729
查看次数

HTML5页脚元素内的链接(导航和旁边?)

我目前正在将一个页面从HTML4移动到HTML5,我有一个问题.页脚中有一堆链接列表.他们中的大多数链接到关于网站本身的信息(常见问题等).所以我认为将它们放在一个nav元素中是可以的(参见"HTML5简介"和HTHML5 Doctor).但是两个列表包含指向Facebook等外部页面的链接.现在我可以把它们放在一边,但这是一个边缘情况:

"将链接包含在网站上的其他页面并且在页脚内部放在一边是合法的 - 但是问问自己是否可以将其作为页脚的兄弟[...]毕竟,其他页面的链接可能是切向与整个页面相关,而不仅仅是页脚的内容." (HTML5简介)

我也可以把它们放在页脚里而不用包裹它们.由于页脚中的所有链接列表都是"可视单元",我现在不想完全从页脚中取出外部链接,即使这在语义方面可能更好.

我正在搜索具有类似页脚的HTML5网站,但找不到任何内容.

你认为最好的方法是什么?

谢谢

html5 footer nav semantics

6
推荐指数
1
解决办法
4910
查看次数

如何使用Polymer 1.x将HTML注入模板?

我的Polymer组件的模板的一部分应该从JSON响应中呈现未转义的HTML(是的,在这种情况下这样做是安全的).到目前为止,我使用了juicy-html(https://github.com/Juicy/juicy-html),但它不再适用于Polymer 1.x.

我的模板的相应部分看起来非常像这样:

<template if="{{item.part1}}">
  <div>
    <template is="juicy-html" content="{{item.part1.part2  | callFunction}}"></template>
  </div>
</template>
Run Code Online (Sandbox Code Playgroud)

我读了一些关于使用早期版本的Polymer注入HTML的解决方案,但是我想知道是否有一种"规范方式"来实现这个1.x?

polymer polymer-1.0

6
推荐指数
2
解决办法
1256
查看次数

Crockford的河内功能(来自"The Good Parts")

目前我正在阅读道格拉斯·克罗克福德(Douglas Crockford)的书,而且河内功能的塔楼有点过头了.即使将日志记录到控制台,我也无法真正了解正在发生的事情.这是我添加的功能:

var hanoi = function (disc, src, aux, dst) {
  console.log(disc);
  console.log(src, dst);    
  if (disc > 0) {
    hanoi(disc - 1, src, dst, aux);
    console.log('Move disc ' + disc + ' from ' + src + ' to ' + dst);
    hanoi(disc - 1, aux, src, dst);
  }
}

hanoi(3, 'Src', 'Aux', 'Dst');
Run Code Online (Sandbox Code Playgroud)

这导致以下结果:

3
Src Dst
2
Src Aux
1
Src Dst
0
Src Aux
将光盘1从Src移动到Dst
0
Aux Dst
将光盘2从Src移动到Aux
1
Dst Aux
0
Dst Src
将光盘1从Dst移动到Aux
0 …

javascript recursion towers-of-hanoi

5
推荐指数
2
解决办法
2287
查看次数

在CentOS 5上安装node.js.

我对CentOS(5)和node.js都很陌生,但我已经有一个较旧版本的node.js可以在我的虚拟服务器上运行.现在我正在尝试安装更新版本,我知道CentOS需要Python 2.4而节点需要2.6或更新版本,因此我使用altinstall安装了Python 2.7.

但即使我在运行./configure之前为Python指定版本为2.7的别名,我仍然会收到此错误:

/root/node/wscript: error: Traceback (most recent call last):
  File "/root/node/tools/wafadmin/Utils.py", line 274, in load_module
    exec(compile(code, file_path, 'exec'), module.__dict__)
  File "/root/node/wscript", line 222
    "-pre" if node_is_release == "0" else ""
        ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这是./configure的内容:

#! /bin/sh

# v8 doesn't like ccache
if [ ! -z "`echo $CC | grep ccache`" ]; then
  echo "Error: V8 doesn't like cache. Please set your CC env var to 'gcc'"
  echo "  (ba)sh: export CC=gcc"
  exit 1
fi

CUR_DIR=$PWD

#possible relative …
Run Code Online (Sandbox Code Playgroud)

python centos node.js

5
推荐指数
2
解决办法
6029
查看次数

dom-if与Polymer 1.x有关

我在模板转发器中有几个有条件标记的元素.现在,当我更新数据时,if条件似乎没有生效,这导致undefined传递到处理这些元素的数据的函数.

使用该restamp属性似乎没有帮助(https://www.polymer-project.org/1.0/docs/devguide/templates.html#dom-if).到目前为止,我只能通过清空this.items = [];我的更改处理程序中的items属性来解决这个问题,该处理程序启动了一个新的请求.

这样可行,但在显示新数据之前,模板会在很短的时间内变空.不一定是个问题,但我想知道我做错了什么.

以下是代码的相应部分:

<template>
...
<iron-ajax
  id="ironajax"
  url="https://www.url.com/api"
  params="{{ajaxParams}}"
  handle-as="json"
  on-response="handleResponse"
  on-error="handleError">
</iron-ajax>
...
<template is="dom-repeat" items="{{items}}" id="items">
...
<template is="dom-if" if="{{item.info.subtitle}}">: 
  <span>{{truncateSubtitle(item.info.subtitle)}}</span
</template>
...
Polymer({
  is: 'my-element',
  properties: {
    query: {
      type: String,
      value: ''
    }
    ...
    items: {
      type: Array,
      value: []
    }
  }
  ...
  handleChange: function() {
    if (this.value !== '') {
      this.items = [];
      this.query = this.value;
      this.$.ironajax.generateRequest();
    }
  }
...
Run Code Online (Sandbox Code Playgroud)

polymer polymer-1.0

3
推荐指数
1
解决办法
5583
查看次数