我練的jQuery插件
我創建這個插件:
(function ($) {
'use strict';
$.fn.characterCounter = function() {
return this.each(function (index, item) {
$(item).keyup(function updateCharCounter() {
var $me = $(this),
maxLength = parseInt($me.attr('maxlength'), 10),
charCount = $me.val().length,
$counter = $me.siblings('.limit');
$counter.text('limit: ' + maxLength + ' characters. remaining: ' + (maxLength - charCount));
});
});
};
})(jQuery);
和我的html代碼:
<div class="form-group">
<textarea id="short-message" maxlength="100" cols="8"></textarea>
<p class="limit">limit: 100 characters</p>
</div>
<div class="form-group">
<textarea id="short-shory" maxlength="150" cols="8"></textarea>
<p class="limit">limit: 150 characters</p>
</div>
<div class="form-group">
<input id="nickname" maxlength="50" size="32"/>
<p class="limit">limit: 50 characters</p>
</div>
<script src="~/Scripts/jquery-1.10.2.js"></script>
<script src="~/Scripts/showCharacterCharlimit.js"></script>
<script>
$(document)
.ready(function() {
'use strict';
$('textarea').characterCounter();
});
</script>
但讓我這個錯誤:
TypeError: $(...).characterCounter is not a function
我不知道爲什麼,有人可以幫我嗎?
不知道,我有這個[的jsfiddle(https://jsfiddle.net/jsupv7qy/1/) – George
@George你的小提琴是使用jQuery 3.2.1,但OP具有工作過時的jQuery 1.10.2。在你的小提琴上更改爲1.19或2.2也會產生錯誤 - 事實證明這是由負載順序引起的 - 將文檔移動到js並且它再次正常工作。 https://jsfiddle.net/jsupv7qy/2/ –
它看起來像是因爲您的文檔已準備好在腳本之前運行。 OP中的代碼看起來像正確的順序 - 你能確認你的實際代碼是否也是這個順序嗎? –