Я только что написал сообщение об этом, и я подумал, что у меня это работает, но теперь я столкнулся с другой проблемой.HTML Selection - Javascript «this.value» null
У меня есть этот фрагмент Javascript:
function slideTo(target){
var targetPosition = $(target).offset().top;
$('html,body').animate({ scrollTop: targetPosition}, 'slow');
}
</script>
Тогда у меня есть это дальше моя страница.
<select onChange="slideTo(this.value)">
<option value="blank">blank</option>
<option value="test">TestPi</option>
<option value="banana">BananaPie</option>
<option value="chicken">ChickenPie</option>
</select>
У меня есть консоль открыть в Firefox, и когда я нажимаю на вариант, он бросает мне эту ошибку.
TypeError: $(...).offset(...) is null
Просьба помочь. Также, извините, если это дубликат. Я быстро посмотрел и не мог видеть ничего, что казалось актуальным, но это, возможно, было моей формулировкой.
Я предполагаю, что вы хотите получить элементы по их идентификаторам и, в вашем случае, вам не хватает '#' .., поэтому вы должны сделать «var targetPosition = $ (« # »+ jQuery (this) .val()). offset(). top;'. Вам не нужно передавать значение в качестве параметра, так как вы можете получить его из своей функции с помощью 'jQuery (this) .val()' – Mindastic
@Mindastic Когда вы вызываете функцию с помощью 'onchange = slideTo()', элемент не передается как 'this'. – Barmar
Да, вы правы @ Бармара. Я думал о привязке обработчика событий к jQuery. Я собираюсь отредактировать свой ответ. Спасибо, что указали это. – Mindastic