jQuery在自定义函数初始化中引用self

时间:2012-12-04 18:24:26

标签: jquery function reference this self

另一个挑战 - 这更像是为了更清晰的代码而不是“我如何”。这是个主意。

<section id="projector" data-start-at="7">....</section>
JS中的

$('#projector').projector_slider({'startFrom' : parseInt( REF TO DATA-START-AT )});

我在HTML元素上调用自定义函数。简单。该函数有一个名为“startFrom”的选项,由INT指示。 INT存储在附加到HTML元素的属性中。我想要的是不必再次在DOM中找到$('#projector')

有没有办法可以在函数调用中获得对Projector的引用 - 比如$(this).attr('data-start-at)

Obv我可以通过再次查找元素并直接访问它来解决这个问题。我想要在清理我的JS时学习一个新的'this'参考技巧的问题。

1 个答案:

答案 0 :(得分:0)

不,你不能。您应该将$('#projector')保存在var中并使用它:

var projector = $('#projector');

projector.projector_slider({
    startFrom: parseInt(projector.data('start-at')),
});

请注意,我使用[.data()] [数据]而不是.attr('data-*')data()函数由jQuery创建,是与data-*属性交互的智能方式。例如,如果你有data-first=true并使用.data('first'),你会得到一个布尔值'true',如果你有data-children="['foo', 'bar']",你将获得一个对象,如果你使用.data('children')。< / p>