-3

.change().click()、またはトリガーを取得できず.keydown()、facebox フォームのどのブラウザーでも機能しません。

-- 編集 --- 問題は、facebox CLONES html がダイアログ ボックス要素に表示されることです。このため、jquery セレクターは機能しますが、イベント トリガーは機能しません (重複に基づく)。修正は、facebox を変更して .clone() の動作を削除することです。

-- 編集終了 --

以下は、ドキュメントの準備ができている場合に機能します。

$('input#testE').css('background-color', 'red');

#testE はテキスト入力です。読み込み時にテキスト ボックスの背景が赤になります。でも...

$('input#testE').keydown(function() { 
    $('input#testE').css('background-color', 'red');
});

トリガーしません。私も試しました.change()、そして.click()。テストのためにコンソールに出力することもありません。私のコードは jsFiddle では正常に動作しますが、私の環境では動作しません。これについて何か考えはありますか?

編集....

ドキュメントの準備ができている問題を明確にするために:

    $(document).ready(function() { //on document load

        console.log('test'); // this works

        $('input#testE').keydown(function() { //won't fire
            $('input#testE').css('background-color', 'red');
        });


                   $('input#testE').css('background-color', 'blue'); //works
            });
4

2 に答える 2

2

[Request an Account] ボタンをクリックすると、ドキュメントに既に存在するフォームのコピーを作成して表示します。

フォームをコピーすると、現在のインライン スタイル (黄色) が使用されますが、イベント ハンドラーは使用されません。

に変更#req_acctするとdisplay: block、元の形と色の変化が見られます。

于 2013-05-06T19:42:32.247 に答える
-1

実際にクリックしたい要素をクリックしていないのではないかと思います。これは、ページにある css が 2 つの異なる要素と重なっていることが原因である可能性があります (絶対配置など、CSS についてはよくわかりません)。 )

以下の方法で確認できます。

$('*').click(function(){
    console.log($(this).prop('id'));
});

テキストボックスをクリックして、取得している ID が正しいかどうかを確認します。jqueryがロードされている場合(証明したように)、これは間違いなく機能するはずです!

編集:

.prop が機能しない場合は、古いバージョンの Jquery を使用している可能性があります。prop の代わりに attr を使用する必要があります。だから交換してください

$(this).prop('id')

$(this).attr('id')
于 2013-05-06T19:03:18.953 に答える