問題があります、
ポップアップを。で切り替えようとしていますtoggleClass
。ただし、StackOverflowから取得したルールを作成して、外側をクリックするとポップアップが消えるようにしました。
ただし、ログインボタンをクリックすると表示されますが、ログインボタンで消えることはできません。しかし、私はルールを設定しました:
$('a#inloggen').click(function() {
$('.inloggen').toggleClass('active');
});
しかし、彼はそれを無視しているようです...
おそらくあなたたちは私が見ることができない問題が何であるかを見つけることができます。
HTML
<div id="usermenu">
<div class="inloggen"><h2 class=" swe-editable" _sweid="17" _sweclass="nl swe swe-snippet swe-h2 ">
Inloggen</h2>
this is the popup!
<p> </p>
<p> </p>
<p>Wachtwoord vergeten? <a href="#">Klik hier</a>.</p></div>
</div>
<ul class="menu">
<li class="first"><a href="#" id="inloggen">login</a></li>
</ul>
jQuery
$('a#inloggen').click(function() {
$('.inloggen').toggleClass('active');
});
$(document).mouseup(function (e)
{
var container = $('.inloggen');
if (container.has(e.target).length === 0)
{
container.removeClass('active');
}
});
if ($('#project_user_loginform-name').hasClass('error') || $('#project_user_loginform-password').hasClass('error')) {
$('.inloggen').addClass('active');
};
私は何を試しましたか?
divの外側をクリックするとdivが消える関数に例外を追加しようとしましたが、これは進行を逆にするようです。
var container2 = $('a#inloggen');
if (container.has(e.target).length === 0 && container2.has(e.target).length !== 0)
更新:
進行状況を少し進めて、mouseupをmousedownに変更し、関数の順序を変更しました。これにより、ソリューションに少し近づくことができますが、まだ完全には機能していません。
$(document).mousedown(function (e)
{
var container = $('.inloggen');
if (container.has(e.target).length === 0)
{
container.removeClass('active');
}
});
$('a#inloggen').click(function() {
$('.inloggen').toggleClass('active');
});