这是我的代码
$('#J_todayComm').myScroll({
ajaxUrl: $(this)
});
我想要$(this)
- > $('#J_todayComm')
,但它是$(doucmen)
。
我的插件代码myScroll.js
$.fn.myScroll = function (options) {
var s = $.extend({
debug: false,
threshold: 65,
loading: false,
ajaxUrl: '',
ajaxMethod: 'GET',
ajaxData: {},
loadSuccess: function () {
},
template: function () {
console.error("Need Template");
}
}, options);
console.log(s.ajaxUrl); //I want it is $('#J_todayComm')
// jquery对象
var $self = this;
// 原生DOM对象
var self = this[0];
......
function getDate() {
if (!s.ajaxUrl) {
console.error('Need url');
return '';
}
$.ajax(s.ajaxUrl, {
method: s.ajaxMethod,
data: s.ajaxData,
dataType: 'json',
success: function (res) {
...
},
error: function () {
...
}
});
}
return $self;
};
如何编写代码?大家好。
答案 0 :(得分:1)
要使this
关键字引用选择器中的元素,您需要更改调用范围。你可以通过使用each()
迭代元素来实现这一点:
$('#J_todayComm').each(function() {
var $el = $(this);
$el.myScroll({
ajaxUrl: $el.data('ajax-url'),
// other settings...
});
});
答案 1 :(得分:0)
代码
$.fn.extend({
myScroll:function(){
console.log(this);//這是你的本物件了
}
})
$('#J_todayComm').myScroll();
更改另一种方式来扩展fn然后你不依赖于orign jquery功能,并且可以获得this
你的对象(并且没有你的options
)。