У меня проблема с функцией hide()
на странице, которую я делаю. На данный момент выбранный слой div не скрывается.
Все отлично работает в Safari и Chrome, но, к сожалению, не в Firefox :-(
Страница здесь в контексте: http://www.upreach.org.uk/undergraduates/partners.php и здесь мой код:
$(document).ready(function(){
$('div.partner-employers').not('div#start').hide();
$("a.employers").click(function(){
$("a.employers").css("font-weight", "normal");
$(this).css("font-weight", "bold");
var myelement2 = $(this).attr("href")
$(myelement2).fadeIn("fast");
event.preventDefault();
$(".partner-employers:visible").not(myelement2).hide();
});
});
... и HTML:
<a href="#1" class="employers">1</a><br/>
<a href="#2" class="employers">2</a><br/>
<a href="#3" class="employers">3</a><br/>
<div class="partner-employers" id="1">Content for 1</div>
<div class="partner-employers" id="2">Content for 2</div>
<div class="partner-employers" id="3">Content for 3</div>
Заранее благодарим за любую помощь, которую вы можете дать...
Вы используете неопределенную переменную event
, поэтому код выходит из строя до того, как будет выполнена последняя строка. В IE это определено в объекте window
, но не в большинстве других браузеров.
Определите параметр event
в сигнатуре функции:
$("a.employers").click(function(event){
Я бы просто сделал:
$('.partner-employers').hide();
$(myelement2).fadeIn("fast");
измените этот $(".partner-employers:visible").not(myelement2).hide();
в этот $(".partner-employers:visible").not("#"+myelement2).hide();
myelement2
уже будет #1
, #2
или #3
.