【发布时间】:2016-03-08 18:59:16
【问题描述】:
我已经尝试这样做了几个小时,但它一直无法正常工作。我找不到原因。
我的 HTML:
<label>
Description<br>
(<span id='fieldLength'>0</span> Chars. ±1):
<textarea name='dataDescr' id='metaDescr'>Some Text Here.</textarea>
</label>
我所拥有的不起作用。它没有给我任何回应,萤火虫中没有控制台错误或任何形式的反馈:
jQuery:
counterChecker = function() {
var max = 800;
var lengthVal = $('#metaDescr').val().length;
var fl = $('#fieldLength');
if (lengthVal >= max) {
var char = lengthVal - max;
fl.text('Over by ' + char);
}
else {
fl.text(lengthVal);
}
}
$(document).ready(function() {
$('#metaDescr').on("change", counterChecker() );
});
编辑:如果函数在 文档准备好括号。
但是 DOES 的工作原理是将相同的代码作为匿名函数直接插入到 on change 函数中:
$(document).ready(function() {
$('#metaDescr').on("change", function() {
var max = 800;
var lengthTwo = $(this).val().length;
var lf = $('#fieldLength');
if (lengthTwo >= max) {
var char = lengthTwo - max;
lf.text('Over by ' + char);
}
else {
lf.text(lengthTwo);
}
});
});
有人可以帮我理解为什么会有这种差异吗?
为什么它不能作为一个单独的调用函数工作,但不会给我的萤火虫带来任何错误,但它可以作为直接引用的(匿名?)函数工作。如何使其按预期运行,但将代码保存在单独的自包含功能单元中。
我正在使用 JQuery 1.11.3 并在过去几个小时内查看 many stackoverflow posts 并没有显示:-/
【问题讨论】:
标签: javascript jquery