私はこのプラグインの作成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
私はなぜ、誰も私を助けることができるか分からないのですか?
手掛かりは、私はそれはあなたのフィドル@Georgeこの[JSFiddle](https://jsfiddle.net/jsupv7qy/1/) – George
で働いているjqueryの3.2.1を使用しますが、OPが持ってい古くなったjquery 1.10.2。あなたのフィドルで1.19または2.2に変更すると、エラーが発生します。これは、ロードの順序によって発生することが判明しています。 https://jsfiddle.net/jsupv7qy/2/ –
ドキュメントの準備がスクリプトより先に実行されているようです。 OPのコードは正しい順序であるように見えます。実際のコードもこの順序であることを確認できますか? –