另一个挑战 - 这更像是为了更清晰的代码而不是“我如何”。这是个主意。
<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'参考技巧的问题。
答案 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>