mouseleave
イベントがトリガーされた DIV があるため、DIV を離れるたびに非表示になります。この DIV には、 を含むフォームが含まれていinput#login_user
ます。いくつかの値について関数をチェックインしています。以下を参照してください。
$(".cart").click(function() {
checkLogin(function(data){
if (data.status) {
// Some code here
} else {
alert("You must login"); // Change
$(".top-bar li, .top-bar li.has-dropdown").trigger("mouseenter");
$("#login_user").focus();
}
});
});
したがって、 if が false であることがわかるようdata.status
に、イベントmouseenter
がトリガーされ、input#login_user
フォーカスを取得する必要があります。mouseenter をトリガーした後に mouseleave イベントを防ぐにはどうすればよいですか? また、フォーカスが発生しないのはなぜですか?
アップデート
これは、イベントを持つ要素が存在するコードですmouseleave
(116 ~ 132 行を参照)。そして、これはのコードですcheckLogin
:
function checkLogin(callback) {
$.post(Routing.generate('_loginStatus'), null, function(responseData) {
if (callback != undefined)
callback(responseData);
else
handleLoginResponse(responseData);
});
}