我目前正在整合一个名为RangeSlider JS的jQuery插件。
这是我触发插件的功能:
$('input[type="range"]').rangeslider({
param: true,
param2: false,
onInit: function() {
if ($(this).attr('name') === 'someName') {
// do something ...
},
}
});
现在,因为我有多个输入类型"范围"我正在使用插件,我需要区分每个输入。我试图通过获取输入"" name"属性,但似乎$(this)
在该函数中不起作用。
如何让$(this)
选择器工作? $(this)
应该引用input[type="range"]
。
答案 0 :(得分:3)
我必须查看actual JS source code for that plugin以了解如何调用onInit()
,但看起来,this
设置为rangelider Plugin
对象。并且,this.$element
将为您提供当前元素的jQuery对象。
所以,你应该能够做到这一点:
$('input[type="range"]').rangeslider({
param: true,
param2: false,
onInit: function() {
if (this.$element.attr('name') === 'someName') {
// do something ...
},
}
});
答案 1 :(得分:1)
您可以使用jQuery.each()
迭代结果并存储对当前控件的引用。
$('input[type="range"]').each(function() {
var that = $(this);
that.rangeslider({
param: true,
param2: false,
onInit: function() {
if (that.attr('name') === 'someName') {
// do something ...
},
}
});
});