我为一个有子菜单的菜单制作了一个脚本。在Chrome中,脚本运行正常但在Firefox中关闭菜单而根本不打开它。
jQuery(function() {
jQuery('li.otchet-open').children().hide();
jQuery('li.otchet-open').addClass('closed');
jQuery('li.otchet-open').click(function(e) {
if(event.target == event.currentTarget) {
if(jQuery(this).hasClass('closed')) {
jQuery(this).children().show();
jQuery(this).removeClass('closed').addClass('opened');
} else if(jQuery('li.otchet-open').hasClass('opened')) {
jQuery(this).children().hide();
jQuery(this).removeClass('opened').addClass('closed');
}
e.stopPropagation();
}
});
});
HTML PART
<ul>
<li class="otchet-open closed">ОТНОСНО: Приемане на Общинска програма за оптимизация на училищната мрежа в Община Шумен през 2017 година
<ul style="display: none;">
<li class="child"><a href="/decisions/17488.pdf">Решение </a></li>
<li class="child"><a href="/decisions/1748801.pdf">Общинска програма </a></li>
</ul>
</li>
</ul>
答案 0 :(得分:1)
您的问题在这里:
jQuery('li.otchet-open').click(function(e) {
if(event.target == event.currentTarget) {
将其更改为:
jQuery('li.otchet-open').click(function(e) {
if(e.target == e.currentTarget) {
jQuery(function() {
jQuery('li.otchet-open').children().hide();
jQuery('li.otchet-open').addClass('closed');
jQuery('li.otchet-open').click(function(e) {
if(e.target == e.currentTarget) {
if(jQuery(this).hasClass('closed')) {
jQuery(this).children().show();
jQuery(this).removeClass('closed').addClass('opened');
} else if(jQuery('li.otchet-open').hasClass('opened')) {
jQuery(this).children().hide();
jQuery(this).removeClass('opened').addClass('closed');
}
e.stopPropagation();
}
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="otchet-open closed">ОТНОСНО: Приемане на Общинска програма за оптимизация на училищната мрежа в Община
Шумен през 2017 година
<ul style="display: none;">
<li class="child"><a href="/decisions/17488.pdf">Решение </a></li>
<li class="child"><a href="/decisions/1748801.pdf">Общинска програма </a></li>
</ul>
</li>
</ul>