我正在尝试取消jQuery,因为我只需要很少的东西,而是使用纯JavaScript
我有这个原始代码:
this.bar = el.find('.bar');
this.options = $.extend({
delay: $.toInt(el.data('delay')) || 2000
}, options);
我试图用它来转换它:
function foo(el, options) {
..................
this.bar = el.querySelectorAll(".bar");
this.options = extend({
delay: parseInt(el.data('delay')) || 2000 < -- - problem
}, options);
}
function extend(first, second) {
for (var secondProp in second) {
var secondVal = second[secondProp];
if (secondVal && Object.prototype.toString.call(secondVal) === "[object Object]") {
first[secondProp] = first[secondProp] || {};
extend(first[secondProp], secondVal);
} else {
first[secondProp] = secondVal;
}
}
return first;
};
但我收到此错误:
“未捕获的TypeError:el.data不是函数”
有人对如何解决有任何想法吗?
el
是DOM对象引用,它不是jQuery对象,因此您不能在其上调用jQuery方法。
要data-*
在VanillaJS中获取属性值,可以使用数据集。
采用
el.dataset.delay
如果要使用jQuery方法,则可以将元素引用包装在jQuery中
$(el).data('delay')
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句