0

ウェブサイトの入力テキストボックスの横に単語カウンターが必要でした

ユーザーがテキストをクリックまたは変更したときにカウントを表示するように機能しましたが、ページの読み込みが完了したらすぐに読み込みたいと思いました。

$(document).ready(function() {

  $("#product_name").change(displayText).keyup(displayText);

function displayText(){
      $("em#counter").text($(this).val().length +' chars'); 
}
});

だから私はこれを以下のコードで試しましたが、それを動作させることができず、理由がわかりません。

$(document).ready(function() {

    if($("#product_name").length){
           displayText();
    }
  $("#product_name").change(displayText).keyup(displayText);

function displayText(){
      $("em#counter").text($(this).val().length +' chars'); 
}
});

本当にありがとう。

4

2 に答える 2

2

これを試して

if($("#product_name").length){
           displayText();
}
$("#product_name").change(displayText).keyup(displayText);

function displayText(){
      $("em#counter").text($("#product_name").val().length +' chars'); 
}

デモ:フィドル

問題は、displayText()ページの読み込み中の呼び出しでした。以前は、イベントハンドラーとして機能していた入力フィールドにアクセスしていましたdisplayText$(this)ただし、displayText直接呼び出すthisと、ウィンドウオブジェクトを指します。

于 2013-03-01T06:34:50.370 に答える
0

複数のイベントで.on()を試してください。

$("#product_name").on({
    change: function() {
        // Handle change event
    },
    keyup: function() {
        // Handle keyup
    }
});

「ページの読み込みが完了したとき」の場合。使用する$(window).load(function() { });

于 2013-03-01T06:28:11.640 に答える