0

私はこれを持っています:

$("#socialsLogin").on("click", function() {
    var login = $("#socialsLoginField").val();
    var passwd = $("#socialsPasswordField").val();
    SocialsStart(login, password);
});

この:

<a href="javascript:void(0)" id="socialsLogin" class="button">Disconnected</a>

クリックイベントが発生しません - 何が間違っていますか? .on() を .live() に変更すると、すべて正常に動作します。しかし、.live() は廃止されているため、使用したくありません (はい、jquery 1.9 を使用しています)。

編集:重複ではありません。私が使用する$(document).on("click", "#socialsLogin", function() {と、ページのどこでも機能します。画像をクリックすると起動します。間違いなく意図したとおりではありません。そして$(document.body).on("click", "#socialsLogin", function() {、私にはまったく機能しません。

Edit2: これが私のフィドルです: http://jsfiddle.net/JeDLW/1/

4

2 に答える 2

2

を置き換えるには、次のようliveに使用します。on

 $(document.body).on("click", "#socialsLogin", function() {

jQuery セットはイベントを受け取り、引数として指定されたセレクターに一致する要素にそれを委譲します。これは、 を使用する場合とは逆にlive、コードを実行するときに jQuery セット要素が存在する必要があることを意味します。

このバインディング コードはreadycallbackで実行する必要があることに注意してください。

$(function() {
     $(document.body).on("click", "#socialsLogin", function() {
         ...
     });
});

編集 :

私が疑ったように、あなたのフィドルは、 id で複数の要素を使用していることを示しています"socialLogin"。それが問題です。フィールドセットの ID を変更します。

于 2013-04-05T19:52:32.290 に答える
2

このようにしてみてください:

$(document).on("click", "#socialsLogin", function() {
    var login = $("#socialsLoginField").val();
    var passwd = $("#socialsPasswordField").val();
    SocialsStart(login, password);
});

または、これを単純に使用できます。

$("#socialsLogin").click(function () {
    var login = $("#socialsLoginField").val();
    var passwd = $("#socialsPasswordField").val();
    SocialsStart(login, password);
});
于 2013-04-05T19:52:39.970 に答える