1

私はJQueryを使用しており、JFiddleでコードを試してみましたが、うまくいきましたが、自分のサイトでそれを行うとまったく機能しません。基本的に、ユーザーリストのリスト項目がクリックされたときにイベントを送信する必要があります.

HTML

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="https://dl.dropbox.com/s/r5pzakk4ikvck3t/style.css?dl=1">
        <script src="https://www.dropbox.com/s/2hdvqa4ma51m0pw/jquery-1.9.0.min.js?dl=1"></script>
        <title>Chat</title>
    </head>
    <body>
        <div id="userlist-container">
            <div id="userlist-title">User List</div><br />
        </div>

        <div id="main-container">
            <div id="messages">
            </div>
        </div>

        <div id="control-container">
            <input type="text" id="TxtMessage" placeholder="Message" onKeyPress="SendMsg(event)" style="text-align:center;" >
        </div>

        <div id="alert-container" hidden="hidden">
            <div id="alert-main">
                <span id="alert-content"></span>
            </div>
        </div>
     </body>
</html>

Javascript

$("#userlist-container > li").click(function(e) {
    alert("TEST");
    var username = "@" + this.html + " ";
    $("TxtMessage").value(username);
    $("TxtMessage").focus();
});

編集:

ページが読み込まれると、サーバーに接続され<li>lalala</li>userlist-container.

4

2 に答える 2

6

バインドのセレクターが間違っています:

$("#userlist-container > li")

liあなたのHTMLはありません:

<div id="userlist-container">
    <div id="userlist-title">User List</div><br />
</div>

#また、イベント内の id セレクターが欠落しているようです。

したがって、イベントはおそらく次のようになります。

$("#userlist-container > div").click(function(e) {
    alert("TEST");
    var username = "@" + this.html + " ";
    $("#TxtMessage").value(username);
    $("#TxtMessage").focus();
});

編集

おそらく、いくつかのウィザード機能を実行すると、li が追加されるため、実際にはそこに li タグが存在することを皆さんに伝えておくべきでした。

あなたのコードをフィドルliに追加しましたが、DOM を検査するときにタグが追加されていないようです。

フィドル_

ただし、それは単なるフィドルかもしれませんが、わかりません。jquery 1.7以降を使用している場合、または1.6以前を使用している場合はli、デリゲートバインディングを使用する必要があるタグが挿入されていると想定しています。ondelegate

これに似ています:

// jQuery 1.7 or later
$("#userlist-container").on("click", ">li", function(){
    alert("TEST");
    var username = "@" + this.html + " ";
    $("#TxtMessage").value(username);
    $("#TxtMessage").focus();
});

// jQuery 1.4.3 to 1.6.x
$("#userlist-container").delegate(">li", "click", function(){
    alert("TEST");
    var username = "@" + this.html + " ";
    $("#TxtMessage").value(username);
    $("#TxtMessage").focus();
});
于 2013-02-02T00:00:52.233 に答える
1

セレクターが間違っています。ID を示すために # プレフィックスを追加してください

$("#TxtMessage").value(username);
$("#TxtMessage").focus();

クリック イベントが発生していない場合は、ドキュメントが読み込まれたにイベントを添付していることを確認してください。

$(document).ready(function(){  
    //code here  
}); 
于 2013-02-01T23:58:54.173 に答える