我想知道JavaScript中范围和选择对象之间的区别.
在我看来,你可以从这两个中的任何一个获得相同的功能.在哪种情况下,您是否知道两者中哪一个使用?
我有一个关于this.hash如何在jQuery中的页面锚链接中工作的问题.
每次用户点击该链接时,我都需要处理哈希属性.
<a href="#foo" class="inpageLink">Click Me!<"/a>
...
...
<a id="foo"></a>
<h3>Target Location</h3>
Run Code Online (Sandbox Code Playgroud)
对于上面的HTML代码段,当我获取哈希属性时,一切正常.
$('.inpageLink').click(function(){
var target = $(this.hash);
if (target.length != 0) {
alert("found target" + this.hash);
}
})
Run Code Online (Sandbox Code Playgroud)
但是,当我为目标使用name属性而不是id属性时,this.hash返回一个null对象.
<a href="#bar" class="inpageLink">Click Me!</a>
<a name="bar"></a>
<h3>Target Location</h3>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,click事件不会触发警报.
有人可以解释我在这里失踪的内容,或者这是否应该如何工作?
我一直在使用ANTLR为Java目标生成标记语言的解析器+树语法,它可以正常工作.现在我试图让JavaScript中的目标在我的Web浏览器中使用它.
但是,我无法找到有关如何执行此操作的任何好文档.我正在使用带有ANTLR IDE的eclipse,当我将语言指定为JavaScript时,我会收到以下错误.
此行有多个标记
(10):内部错误:组JavaScript不满足接口ANTLRCore:这些模板上的参数不匹配[treeParser(语法,名称,范围,标记,tokenNames,globalAction,规则,numRules,bitsets,labelType,ASTLabelType,superClass,members,filterMode) )]
(10):内部错误:java.util.NoSuchElementException:没有这样的属性:模板上下文中的filterMode [treeParser]
如果有人可以帮我解决这个问题,或者指出一些我可以通过ANTLR阅读有关JavaScript目标的材料,那就太棒了.
谢谢
我有一个包含大量列表元素的网页(接近3000).我正在为这些和一个悬停事件附加一个click事件处理程序(使用jquery).
$('li').click(function (e){
// do processing here
})
$('li').hover(function (e){
// do processing here for hover in
}, function (e) {
// do processing here hover out
})
Run Code Online (Sandbox Code Playgroud)
在IE8上,我开始注意到一些减速,我最初的猜测是事件处理程序的数量导致内存泄漏/消耗问题.这适用于Chrome,FF,IE9.
有没有人注意到这种行为?
我还在考虑使用jquery委托可以解决这个问题,因为事件处理程序将存在于父容器中,而不是每个列表元素都存在.像以下一样 -
$("#somecontainer").delegate('li', 'click', function () {
//do processing for click here.
})
Run Code Online (Sandbox Code Playgroud)
我们非常感谢您对此的任何见解.谢谢!