如何从插件调用本身访问插件调用的实际元素? $(this)
似乎是指插件上下文而不是实际元素。
例如,我在输入字段上调用pluginName插件,我想要一个回调来更改该输入的值。这是一个通用的例子。元素可以是标签,类,id等。
$('element').pluginName({
option: true,
option: false,
onSelect: function(item){
$(this).val('something');
//console.log($(this));
}
});
答案 0 :(得分:1)
this
事件中onSelect
的上下文将取决于库的结构,以及如何对该事件处理程序进行内部调用。理想的解决方案是将onSelect
处理程序的范围设置为元素本身,或者至少将其作为参数提供给处理程序。
如果这不可能,并且您希望保留对#input
元素的引用,则可以再次选择它,因为只应该有一个元素的单个实例id
:
onSelect: function(item){
$('#input').val('something');
}
如果您使用类来选择多个元素,那么您需要循环遍历它们:
$('.input').each(function() {
var $el = $(this);
$el.pluginName({
option: true,
option: false,
onSelect: function(item) {
$el.val('something');
}
});
});
答案 1 :(得分:1)
如果你的插件不允许,没有直接的方法。你可以做的一件事是
var $el = $('#input');
$el.pluginName({
option: true,
option: false,
onSelect: function(item){
$el.val('something');
}
});