2012-11-26 14 views
5

Ho aggiornato all'ultima versione di jQuery e vedo questo errore.Errore jQuery - Impossibile richiamare i metodi nelle schede prima dell'inizializzazione

errore:

Uncaught Error: cannot call methods on tabs prior to initialization; attempted to call method ' div.panes > div '

completo Snippet:

html:

<div id="nav"> <!-- Start Page Navigation --> 
    <ul class="tabs page"> 
     <li><a href="#tab1">Tab1</a></li> 
     <li><a href="#tab2">Tab2</a></li> 
     <li><a href="#tab3">Tab3</a></li> 
     <li><a href="#tab4">Tab4</a></li> 
    </ul> 
    <div class="clear"></div> 
</div> <!-- End Page Navigation --> 

JS:

$(document).ready(function() { 
    $("div.header div.version").css({ '-moz-border-radius': '6px', '-webkit-border-radius': '6px' }); 
    $("div#contact_form .text_input").css({ '-moz-border-radius': '4px', '-webkit-border-radius': '4px' }); 
    $("div#about div.right").css({ '-moz-border-radius' : '8px', '-webkit-border-radius': '8px' }); 
    $("div#contact_form p label").css({ 
      '-moz-border-radius-topleft': '4px', 
      '-moz-border-radius-bottomleft': '4px', 
      '-webkit-border-bottom-left-radius' : '4px', 
      '-webkit-border-top-left-radius' : '4px' 
    }); 
    $("select").css({ '-khtml-appearance' : 'none' }); 
    $('#reviews').serialScroll({ 
     items: 'div', 
     axis: 'y', 
     duration: 800, 
     interval: 5000, 
     cycle: true 
    }); 
    $('#reviews').trigger('next'); 
    $("a.screenshots").fancybox({ 
      'transitionIn' : 'elastic', 
      'transitionOut' : 'elastic', 
      'speedIn'  : 400, 
      'speedOut'  : 400, 
      'overlayShow' : false 
     }); 
     $('input#send').click(function() { 
     var name = $('input#name').val(); 
     var email = $('input#email').val(); 
       var topic = $('select#topic option:selected').val(); 
     var message = $('textarea#message').val(); 
     $.ajax({ 
      type: 'post', 
      url: 'scripts/send_email.php', 
      data: 'name=' + name + '&email=' + email + '&topic=' + topic + '&message=' + message, 

      success: function(results) { 
       $('p.validation').html(results); 
      } 
     }); // end ajax 
    }); 
$("#ul.tabs").tabs("div.panes > div", { history: true }); 
}); 

non vedo l'errore se uso:

$("#content ul.tabs").tabs("div.panes > div", { history: true }); 

enter image description here

+1

Che aspetto ha il tuo markup? –

+0

Hai aggiornato anche alla versione più recente dell'interfaccia utente di jQuery? –

+0

Quale versione di jQuery e jQuery UI stai utilizzando? – 3dgoo

risposta

6

A seguito risolto il mio problema:

$("ul.tabs").tabs($("div.panes > div"), { history: true }); 
14

provare questo

$("ul.tabs").tabs("div.panes > div", { history: true }); 

invece di questo

$("#ul.tabs").tabs("div.panes > div", { history: true }); 
Problemi correlati