Jquery 变量的值不为´;不能传递给函数
我的问题是,值被正确地传递给变量,但我认为缺少了一些东西,因为当更改#sol的值时,动画时间不会改变。也许我得和你一起工作。关于(改变…?)Jquery 变量的值不为´;不能传递给函数,jquery,Jquery,我的问题是,值被正确地传递给变量,但我认为缺少了一些东西,因为当更改#sol的值时,动画时间不会改变。也许我得和你一起工作。关于(改变…?) $(function() { var speed = $('#sol').val(); $(document).on('click', '#engage', function(event){ var $anchor = $(this); $('html, body').stop().animate({
$(function() {
var speed = $('#sol').val();
$(document).on('click', '#engage', function(event){
var $anchor = $(this);
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, speed);
event.preventDefault();
});
});
<form id="speed">
<select id="sol" style="display:block;">
<option value="800000">1</option>
<option value="400000">2</option>
<option value="200000">4</option>
<option value="100000">8</option>
<option value="50000">16</option>
<option value="32000">25</option>
<option value="16000">50</option>
<option value="100000000000">100</option>
</select>
</form>
$(函数(){
变量速度=$('#sol').val();
$(文档)。在('点击','参与')功能(事件){
var$anchor=$(此);
$('html,body').stop().animate({
滚动左:$($anchor.attr('href')).offset().left
},速度);
event.preventDefault();
});
});
1.
2.
4.
8.
16
25
50
100
在#sol
元素的值和变量速度
之间没有实时映射,这将导致在更改选择元素的值时更新变量的值
$(function () {
var speed = $('#sol').val();
$('#sol').change(function () {
speed = $(this).val();
});
$(document).on('click', '#engage', function (event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, speed);
event.preventDefault();
});
});
相反,当您希望在单击处理程序中使用select元素时,可以读取该元素的值
$(function () {
$(document).on('click', '#engage', function (event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, +$('#sol').val());
event.preventDefault();
});
});
另一个解决方案是使用更改处理程序,该处理程序将在变量发生更改时更新变量的值
$(function () {
var speed = $('#sol').val();
$('#sol').change(function () {
speed = $(this).val();
});
$(document).on('click', '#engage', function (event) {
var $anchor = $(this);
$('html, body').stop().animate({
scrollLeft: $($anchor.attr('href')).offset().left
}, speed);
event.preventDefault();
});
});
问题您正在设置
速度
值,但没有使用更改的值更新它。非常感谢,没有变量的解决方案可以正常工作,使用更改处理程序的解决方案不起作用。