2012-04-07 2 views
1

Je veux cliquer sur l'élément suivant de l'élément actif actuel. Lequel est actif, c'est une balise contenant une classe active.Uncaught TypeError: Objet # <an Object> n'a pas de méthode 'clic'

Donc tout d'abord, j'active une balise active et c'est parent li. Maintenant j'obtiens l'index de li dans ul. Puis ajoutez 1 dans sa valeur et obtenez ensuite un tag et déclenchez l'événement de clic dessus.

Mon code fonctionne correctement dans IE et Firefox, mais dans Chrome, je suis l'exception suivante.

"Uncaught TypeError: # Object n'a pas de méthode 'cliquez sur'"

s'il vous plaît me suggère lien utile ou exemple de code ou de correction dans mon code.

Mon code html est: -

<nav class="cycle-nav-container" role="navigation">   
    <ul class="list-b" id="cycle-1-nav"> 
      <li class="hitmo"><a href="http://hitmo-studio.com/#hitmo">Hitmo</a></li> 
      <li class="fastpr"><a href="#" class="active">FastPr</a></li> 
      <li class="thinkmedia"><a href="http://hitmo-studio.com/#thinkmedia">Thinkmedia</a></li> 
      <li class="arkana"><a href="http://hitmo-studio.com/#arkana">Arkana</a></li> 
      <li class="bioway"><a href="http://hitmo-studio.com/#bioway">Bioway</a></li> 
      <li class="nana"><a href="http://hitmo-studio.com/#nana">Nanaform</a></li> 
      <li class="akademia"><a href="http://hitmo-studio.com/#akademia">Social Media Academy</a></li> 
     </ul> 
    </nav> 

Mon code Javascript est: -

var navIndex = $('.cycle-nav-container .list-b .active').parent(); 
    var nextIndex = $("ul.list-b li").index(navIndex) + 1; 
    var par = $("ul.list-b"); 
    if(nextIndex>=par[0].children.length) 
    nextIndex=0; 
    var nextElement = par[0].children[nextIndex]; 
    var navIndex12 = nextElement.children[0]; 
    navIndex12.click(); 
+1

Essayez '$ (navIndex12) .click()' – dfreeman

+0

'navIndex12' n'est pas un objet jQuery, mais un simple élément DOM, donc il n'a pas de méthode' click' – ZenMaster

+0

qui fonctionne maintenant, mais expliquez-moi s'il vous plaît pourquoi ça marche sur IE et Firefox ou donnez moi un lien d'explication de détails de cette chose. –

Répondre

0

Pour appeler le gestionnaire de clic pour un élément DOM, IE définit une méthode de clic qui tire essentiellement le clic un événement . Firefox l'a implémenté à partir de FF 5+.

Toutefois, Chrome utilise toujours le dispatchEvent standard W3C défini pour déclencher l'événement par programmation.

Ou peut-être aussi que l'objet navindex12 retourné pourrait être un DOMTextElement. Essayez d'alerter navindex12.nodeType

Pour conclure, vous devriez essayer de vérifier avec élégance les contraintes du navigateur et des éléments avant d'appeler la méthode click.

Questions connexes