我正在用jQuery开始一个项目.
您在jQuery项目中遇到了哪些陷阱/错误/误解/滥用/误用?
我试图更好地理解jQuery.map函数.
因此,一般而言.map采用数组并将其"映射"到另一个项目数组.
简单的例子:
$.map([0,1,2], function(n){
return n+4;
});
Run Code Online (Sandbox Code Playgroud)
结果在[4,5,6]
我想我明白它的作用.我想知道为什么有人需要它.这个功能的实际用途是什么?你是如何在你的代码中使用它的?
我注意到,在将事件处理程序绑定到javascript事件时,建议使用命名函数.当我的函数需要传递给this对象时,我该怎么做?
例如,如何通过直接调用来替换下面的匿名函数doFancyStuff:
$(document).on('change', 'input.fancy-textbox', function () {
doFancyStuff($(this));
});
function doFancyStuff($textbox) {
// fanciness
}
Run Code Online (Sandbox Code Playgroud)
如果你指出我可能打破上述代码的其他约定,请加分.
为了澄清,我想doFancyStuff()从多个地方调用我的例子中的方法,否则,我可以做这样的事情:
$(document).on('change', 'input.fancy-textbox', doFancyStuff);
function doFancyStuff() {
var $textbox = $(this);
// fanciness
}
Run Code Online (Sandbox Code Playgroud) 我使用jquery accordion插件在页面上设置了一些手风琴,所以我可以实现expand all并折叠所有功能.
每个ID元素都是它自己的手风琴,下面的代码可以将它们全部关闭,无论哪个已经打开:
$("#contact, #address, #email, #sales, #equipment, #notes, #marketingdata")
.accordion("activate", -1)
;
Run Code Online (Sandbox Code Playgroud)
我的问题是扩展所有.当我将它们全部展开时使用以下代码:
$("#contact, #address, #email, #sales, #equipment, #notes, #marketingdata")
.accordion("activate", 0)
;
Run Code Online (Sandbox Code Playgroud)
有些人会收缩,有些人会根据他们以前是否开放而扩大.
我纠正这个问题的想法是将它们全部折叠,然后在点击展开全部时将它们全部展开.但是这段代码无法正常执行:
$("#contact, #address, #email, #sales, #equipment, #notes, #marketingdata")
.accordion("activate", -1)
;
$("#contact, #address, #email, #sales, #equipment, #notes, #marketingdata")
.accordion("activate", 0)
;
Run Code Online (Sandbox Code Playgroud)
它只会击中第二个命令而不是先关闭它们.有什么建议?
我有一份产品清单.
<ul>
<li><a href="chair.php">CHAIR</a></li>
<li><a href="table.php">TABLE</a></li>
<li><a href="sofa.php">SOFA</a></li>
<li><a href="bookshelf.php">BOOKSHELF</a></li>
<ul>
Run Code Online (Sandbox Code Playgroud)
鼠标悬停我希望在一个div #preview显示产品的缩略图.
我不想为每个图像硬编码jquery.而是我想写的JQuery能吸引图像位置并插入到DOM.我不知道如何标记HTML以包含图像位置.有任何想法吗?
我最近发表了一篇关于jQuery性能的博客文章(即http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/),并在所有这些我们都应该将jQuery对象缓存到javascript变量.
但是,我需要知道的是,这是否适用于$(this).如果我这样做,我会获得性能:
$("#some-link").click("click", function(){
var $this = $(this);
$this.doSomeThing();
});
Run Code Online (Sandbox Code Playgroud)
预先感谢您的帮助.