Я пытаюсь избавиться от 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;
};
Но я получаю эту ошибку:
"Uncaught TypeError: el.data is not a function"
Кто-нибудь есть какие-либо идеи о том, как исправить?
Поскольку вы на рулоне, как бы вы преобразовать это в чистом JS : ---> this.bar.find ("[data-src], [data-background-image]") –
@SarasotaSun, пожалуйста, задайте новый вопрос. –
@SarasotaSun Самуэль прав, задавая отдельный вопрос, поскольку это не имеет никакого отношения к вопросу. В любом случае, со ссылкой на 'this.bar = el.querySelectorAll (". Bar ");', вы можете использовать 'this.bar = el.querySelectorAll ('[data-src] [data-background-image]')' , вы можете использовать селектор так, как он есть в querySelector – Tushar