gpt4 book ai didi

jquery - 通过 jQuery .each() 推送对象参数

转载 作者:行者123 更新时间:2023-12-01 04:50:47 25 4
gpt4 key购买 nike

任何人都有使用过niceScroll的经验...我正在尝试优化将滚动条分配给各自元素并附加其属性的代码。这仅适用于数组中存在的第一个对象($ele1):

var obj = {
cursorwidth: 6,
railoffset: {top:0,left:20}
};

var eleArray = [$ele1, $ele2];

$(eleArray).each(function() {

$(this).niceScroll( obj );

});

但这对于数组中的所有对象来说都可以:

var eleArray = [$ele1, $ele2];

$(eleArray).each(function() {

$(this).niceScroll( {
cursorwidth: 6,
railoffset: {top:0,left:20}
} );

});

有什么方法可以从外部 var 简化这些属性,在该外部 var 中处理数组中的所有对象?

最佳答案

您可以在迭代中重用相同的输入 obj 的原因是,在内部,插件添加了与单个实例相关的各种信息。看一下这个例子:

http://jsfiddle.net/46TLb/

检查控制台。您正在传递这个:

{"cursorwidth":6,"railoffset":{"top":0,"left":20}}

它以类似的方式添加和转换它:

{"cursorwidth":6,"railoffset":{"top":0,"left":20},"doc":{"0":{"jQuery110107344591654536623":7},"context":{"jQuery110107344591654536623":7},"length":1}}

所以答案是:你不能重用向niceScroll函数传递参数的相同实例,因为它为了自己的方便而改变它。事实上,这并不是一个很好的优化。如果需要优化,可以尝试将jquery的each函数替换为内置的javascript for循环:

var eleArray = [$ele1, $ele2];

for (var i = 0; i < eleArray.length; ++i) {

eleArray[i].niceScroll( {
cursorwidth: 6,
railoffset: {top:0,left:20}
} );

}

阅读此内容以了解有关 jquery 优化的更多信息:http://net.tutsplus.com/tutorials/javascript-ajax/10-ways-to-instantly-increase-your-jquery-performance/

关于jquery - 通过 jQuery .each() 推送对象参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20411132/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com