2010-01-05 4 views
2

У меня есть этот кусок кода, который показывает пару divs, когда он щелкнут, а затем они скрыты после нажатия другой ссылки. Я пытаюсь показать это в Firefox, и это может быть не проблема в js, но вся помощь очень ценится.Код JQuery, работающий в Chrome, но не в Firefox

<script type="text/javascript"> 
    $(document).ready(function(){ 
      $('.fadein').click(function(){ 
        // Make the id overview show 
        $('#header-contact').hide('slow'); 
        $('#header-portfolio').show('slow'); 
        $('#content-portfolio').show('slow'); 
        // override default a behavior 
        return false; 
      }); 
    }); 
</script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
      $('.fadein2').click(function(){ 
        // Make the id overview show 
        $('#header-portfolio').hide('slow');      
        $('#header-contact').show('slow'); 
        $('#content-portfolio').hide('slow'); 
        // override default a behavior 
        return false; 
      }); 
    }); 

</script> 
<script type="text/javascript"> 
    $(document).ready(function(){ 
      $('.fadein3').click(function(){ 
        // Make the id overview show 
        $('#header-portfolio').hide('slow');      
        $('#header-contact').hide('slow'); 
        $('#content-portfolio').hide('slow'); 
        // override default a behavior 
        return false; 
      }); 
    }); 

+2

Ссылка на тест в Firefox будет полезна. Вы пытались использовать FireBug для проверки ошибок Javascript? Все там выглядит нормально. – sberry

+0

Да, попробовал использовать Firebug и ошибок не было, было бы полезно добавить весь код на моем сайте? Тогда можно будет увидеть, была ли это проблема, которую я сделал с помощью CSS или HTML. – 2010-01-05 01:35:52

+0

Вы не закрываете третий элемент скрипта, это опечатка? или причина проблемы? – ekhaled

ответ

4

Попробуйте пропускание event к каждому из click обработчиков и перед вами return false, вызовите preventDefault() на переданном в event объекте.

пример:

$(document).ready(function(){ 
     $('.fadeinX').click(function(e){ 
       // Make the id overview show 
       $('#header-portfolio').hide('slow');      
       $('#header-contact').hide('slow'); 
       $('#content-portfolio').hide('slow'); 
       // override default a behavior 
       e.preventDefault(); 
       return false; 
     }); 
}); 
2

Используйте Web Developer by Chris Pederic, чтобы очистить кэш. У меня была точно такая же проблема с Firefox и с помощью веб-разработчика, чтобы очистить кеш-память. Просто, но вы никогда не знаете, и я вытягивал свои волосы.

+0

Я загрузил веб-разработчика, но затем я проверил проблему на двух других компьютерах. Все они отлично работают как в Chrome, так и в IE (не уверен в сафари), но не в Firefox. Спасибо за вашу помощь. – 2010-01-05 01:27:07

1

Вы на самом деле не нужно return false вообще, если вы preventDefault();

$(document).ready(function(){ 
    $('.fadein').click(function(e){ 
    // Make the id overview show 
    $('#header-portfolio').hide('slow');      
    $('#header-contact').hide('slow'); 
    $('#content-portfolio').hide('slow'); 
    // override default a behavior 
    e.preventDefault(); 
    }); 
}); 

также переместить JS в собственный файл, и только один $(document).ready(function() {...}) функцию, и вы можете поместить все три ваших событий там.

Смежные вопросы