2013-09-15 4 views
0

Я затрудняюсь объяснить, почему этот фрагмент кода работает только для первой функции. Своп изображения не выполняет .ready (функция().

$(document).ready(function() { 
$(function(){ 
// tip 
    $("#tip").fancybox({ 
     'width'   : 420, 
     'height'   : 300, 
     'autoScale'  : true, 
     'autoDimensions' : true, 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'fade', 
     'overlayColor' : '#111', 
     'type'   : 'iframe' 
    }); 
}); 
// image swap 
$("#image1, #image2").click(function(){ 
    switch(this.id) 
     { 
     case 'image1': 
      _(this.id,"../../img/answers.png","../../img/b13a(AC)ans.png"); 
      break; 
     case 'image2': 
      _(this.id,"../../img/answers(biggest4).png","../../img/b13b(AC)ans.png"); 
      break; 
     } 
    function _(id,main, alt){ 
     if($("#"+id).attr("src") == main) $("#"+id).attr("src", alt); 
      else $("#"+id).attr("src", main); 
    } 
}); 

Если я помещаю вторую функцию в отдельный $ (документ) .ready (function(), обе процедуры работают, но я стараюсь избежать дублирования.

+3

Вы заработали значок «Лучший создатель спагетти». – undefined

+0

Я не уверен, почему вы это написали. Удаление одной строки заставляет ее работать. Остальная часть кода кажется аккуратно вложенной и существенной. Да, но я боялся, что могу случайно удалить то, что вызвало проблему. –

ответ

2

Вам не обязательно, $(function(){}) - это то же самое, $(document).ready

$(function() { 
// tip 
    $("#tip").fancybox({ 
     'width'   : 420, 
     'height'   : 300, 
     'autoScale'  : true, 
     'autoDimensions' : true, 
     'transitionIn' : 'elastic', 
     'transitionOut' : 'fade', 
     'overlayColor' : '#111', 
     'type'   : 'iframe' 
    }); 
// image swap 
    $("#image1, #image2").click(function(){ 
     switch(this.id) { 
      case 'image1': 
       _(this.id,"../../img/answers.png","../../img/b13a(AC)ans.png"); 
       break; 
      case 'image2': 
       _(this.id,"../../img/answers(biggest4).png","../../img/b13b(AC)ans.png"); 
       break; 
     } 
     function _(id,main, alt){ 
      if($("#"+id).attr("src") == main) $("#"+id).attr("src", alt); 
       else $("#"+id).attr("src", main); 
     } 
    }); 
}); 
+0

Теперь я понимаю! Просто удалить тег $ (document) .ready (function() сделал трюк! –

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