javascript - 自定义宽度编辑器?

标签 javascript jquery html css width

因此,我尝试编写一个使用输入文本框的自定义 jQuery 宽度编辑器,并根据通过输入文本框收到的输入更改特定 HTML 元素的宽度。 Here是我到目前为止所拥有的。 (JSFiddle)

HTML和CSS比较标准,没什么花哨的。我认为那里没有任何错误。这是我不太了解的 JS + jQuery。特别是,为什么它不起作用。这是我的 JS:

var widthValue = $('#widthInput').val();
var widthFunction = function() {
$('#widthChanger').click(function() {
    $('#changedWidth').animate({width: widthValue}, 5000);
});
};
widthFunction();

我使用 .val() 获取输入文本框的值并将其存储在 widthValue 中,创建了一个动画 div 的函数 - 当单击按钮时将其宽度更改为输入文本框的值过程 5000 毫秒(5 秒),然后调用该函数。

当运行代码并单击按钮时,div 会动画化 - 但它会动画化到几乎完全消失的地方。如果您在输入文本框中输入任何内容,也会发生同样的事情。

谁能向我解释为什么我的代码不能按我希望的方式正常工作?

最佳答案

您应该在单击按钮时抓取输入的宽度,而不是之前。由于您在输入任何值之前获取了宽度,因此您正在尝试将 DIV 设置为空字符串宽度。

所以你应该这样做:

var widthFunction = function() {
    $('#widthChanger').click(function() {
        var widthValue = $('#widthInput').val();
        $('#changedWidth').animate({width: widthValue}, 5000);
    });
};
widthFunction();

我还建议在 $(document).ready 回调中设置点击监听器,而不是调用 widthFunction(但也许您只是提供了一个简化版本你的代码)。

关于javascript - 自定义宽度编辑器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31236626/

相关文章:

javascript - setInterval淡入然后淡出纯javascript,没有jquery或css

php - jQuery $.ajax 和 php 删除文件

php - Jquery Post方法在本地有效但在服务器上无效

jquery - 当没有收到请求的响应时会发生什么?我正在重试

javascript - 未捕获的类型错误 :Object[object object] has no method 'on'

javascript - 突出显示文本区域内的文本

javascript - 我们可以将 $(this) 与其他选择器一起使用吗?

javascript - 有一个 div 固定并滚动它吗?

按下瑞典键 å、ä 和 ö 时,jQuery event.keyCode 0

javascript - 取消选中所有按钮不适用于 PHP