0

下面的代码放在 document.ready() 中找到每个 .scrollable div 并创建一个变量,为每个面板提供一个 id 并激活一个滚动脚本。

var orderit = 0;
var scrolls = {};
$('.scrollable').each(function(){
    this.id = 'scrollp' + (++orderit);
    scrolls[ 'myScroll' + this.id ] = new iScroll( this.id, { scrollbarClass: 'myScrollbar' });
});

问题是稍后我需要通过调用.refresh()嵌入在脚本中的方法来刷新这些变量。为此,我们需要变量名。获取变量的一种方法是像这样计算它的设置。

$('.dircore').click(function(){
    'myScroll' + $(this).attr('id').refresh();
}

这仅在 firefox 中有效,即使 firebug 说这是一个错误,但它在其他浏览器中不起作用,并且显然不是这样做的正确方法。

我希望这里有足够的信息可以解决,但本质上我们需要使用我们想要刷新的元素的 id 来计算它的变量,然后.refresh()针对它的变量调用方法。

4

1 回答 1

0

你不能使用jQuery .data() 函数将数据绑定到元素,然后再调用它吗?这样,您也可以避免循环引用和由它们引起的内存泄漏。

像这样:

$(document).ready(function() { $('#scroll5').data('data', value); });

接着:

$('.dircore').each(function() { $(this).data('data').refresh(); });

或类似的东西。

于 2011-10-18T11:18:58.583 回答