我可以使用元素自己的属性作为插件调用的参数吗?

时间:2014-04-15 12:30:24

标签: jquery jquery-plugins

我正在我的页面上实现slim scroll plugin(它将可滚动div上的默认滚动条转换为更漂亮的滚动条),并且实现调用(按照它们的示例)如下所示:

$('#inner-content-div').slimScroll({
   height: '250px'
});

由于我需要更多可滚动的不同高度的div,我需要多次调用此插件,每次都将不同的高度作为参数传递。

要缩小这么多代码,让它更具可读性,同时为了避免在我更改CSS时更改我的JS,我可以使用以下内容:

$('#inner-content-div').slimScroll({
   height: $(this).css('height')
});

上面的例子,当然,不起作用,这只是我尝试过的东西而且失败了。但它应该说明我的意图。

3 个答案:

答案 0 :(得分:1)

不,你不能因为没有将this的值定义为元素的范围,但你可以使用each创建这样的范围

$('#inner-content-div').each(function() {
   $(this).slimScroll({
       height: $(this).css('height')
   });
});

答案 1 :(得分:1)

只有在css中为项目设置高度时,您的代码才有效。除此以外 $(this).height();  会做的

答案 2 :(得分:0)

你可以这样做:

var myElem = $('#inner-content-div');
myElem.slimScroll({
   height: myElem.css('height')
});

这将按照您的意愿运作。只需指定元素并使用它即可。