Я пытаюсь понять, почему происходит следующее.
Я пытаюсь:
Щелкните элемент.
При нажатии передайте элемент DOM в функцию.
Используйте этот элемент DOM в функции для создания целевого идентификатора.
Плавная прокрутка к этой цели ID>
Вот мой код:
ПЕРЕМЕННАЯ:
var productListQueryResult = $('#product-list-query-result');
ТРИГГЕР:
scrollToDiv(productListQueryResult);
ФУНКЦИЯ:
// TO TOP OF ELEMENT
function scrollToDiv(e) {
var el = e.attr('id');
$('html, body').animate({
scrollTop: $("#" + el).offset().top
}, 300);
console.log(el);
}
// END TO TOP OF ELEMENT
РЕЗУЛЬТАТ:
jquery.js?ver=1.12.4-wp:2 Uncaught Error: Syntax error, unrecognized expression: '#product-list-query-result'
Хотя этот элемент существует. Если я запускаю:
var e = jQuery("#product-list-query-result");
console.log(e);
, я получаю две возвращенные строки:
a.fn.init [div#product-list-query-result, context: document, selector: "#product-list-query-result"]
undefined
Я не уверен, почему мне возвращают вторую строку, слишком 'неопределенную', может кто-нибудь объяснить, что тоже?
Надеюсь, я предоставил достаточно информации, если нет, пожалуйста, не стесняйтесь начинать обсуждение.
Редактировать
Я также пытался:
TRIGGER :
scrollToDiv(productListQueryResult.attr('id'));
ФУНКЦИЯ:
// TO TOP OF ELEMENT
function scrollToDiv(e) {
var el = "'#" + e + "'";
$('html, body').animate({
scrollTop: $(el).offset().top
}, 300);
console.log(el);
}
// END TO TOP OF ELEMENT
РЕЗУЛЬТАТ:
Uncaught Error: Syntax error, unrecognized expression: '#product-list-query-result'
РЕДАКТИРОВАТЬ (РЕШЕНИЕ):
Если Передавая переменную в селектор, вам не нужны символы "".
FUNCTION:
// TO TOP OF ELEMENT
function scrollToDiv(e) {
var el = "#" + e;
$('html, body').animate({
scrollTop: $(el).offset().top
}, 300);
console.log(el);
}
// END TO TOP OF ELEMENT
Я все еще не понимаю, почему первая попытка не сработала и почему простой тест вернул неопределенную строку?