0

内に 2 つのユーザー名/パスワード テキスト フィールドがあり<li>ます。ドロップダウンが表示され、テキスト フィールドが表示されます:hover<li>ユーザーがテキスト フィールドをクリックすると<li>、疑似クラスが必要になり:hover、マウスが contianing の外側に移動してもフィールドが表示されたままになります<li>

このコードを試しましたが、うまくいきません。

<script>$('#username').on('click',function() {
    $('#li').trigger('hover');});
</script>    

ここにHTMLがあります

<li id="li"><a href="#">Register</a></li>
   <p>Or Login Below</p>
 <form method="post" action="#" name="loginform" id="loginform" class="myClass">
<fieldset>
    <input value="username" type="text" name="username" id="username" onclick="this.value=''" class="left" />
    <input value="password" type="password" name="password" id="password" onclick="this.value=''" class="left" />
    <input type="submit" name="login" id="login2" value="Login" />
</fieldset>
</form>  
</li>

JavaScript が間違っていますか、それとも他の JavaScript と競合している可能性がありますか? また、「をクリックすると消えて、非表示になるように
するのは簡単ですか?<div>:hover<li>

4

2 に答える 2

0

このコードを試しましたが、うまくいきません

何が「機能していない」のかわかりませんが、動作を別の方法で実装します。

クリックで「ホバー」をトリガーすることは、私には正しくないようです。「ホバー状態」がマウスが要素の上にあることを意味しない場合、コードはあいまいになります。

クリック イベントで LI の可視性を切り替えるだけで、コードはより読みやすく/ロジックになります。

$('#username').on('click',function() {
    $('#li').toggle();
});
于 2013-11-01T12:50:48.143 に答える
0

私はこれについて間違っていました。どうやら CSS 疑似セレクターは、私が試した方法では選択できません。
これは他の人のための説明ですhttp://forum.jquery.com/topic/jquery-triggering-css-pseudo-selectors-like-hover

これはうまくいきました:

<script>$('#username').click(function() {
$('#li').addClass('psuedoClassProperty'); // adds the CSS to display        

});

クリックされたときに非表示にする:要素の外側のクリックを検出するにはどうすればよいですか?

<script>
$('html').click(function() {
$('#li').removeClass('psuedoClassProperty');
});
$('#li').click(function(event){
event.stopPropagation();
});
</script>
于 2013-11-01T14:53:54.797 に答える