2010-08-02 4 views
2

J'ai une page où le produit et son image sont chargés dans une table.L'image est initialement cachée, et onmouseover je veux afficher l'image.L'image est à l'intérieur d'un tag div, et productname est représentée en link.In la fonction onReady, j'attache gestionnaire d'événements au lien,Jquery - l'accès à un élément donne null

$('a').each(function() 
    { 
     if($(this).attr('id').match(/prod/)) 
     { 
      $(this).mouseover(display()); 
     } 
    }); 

et dans le gestionnaire d'événements (une fonction appelée affichage) Je fais appel

function display() 
{ 
    $('div').each(function() 
    { 
     if($(this).attr('id').match(/sx/)) 
     { 
      alert("hi") 
     } 
    }); 
} 

Mais, je je reçois une erreur $ ("div") est nulle

HTML est:

<table> 
<tr><td><a href="link">product name</a></td> 
    <td><div class='.hidden'><table><tr><td><img src=""></img></td></tr></table></div></td></table> 
+0

Quel est votre HTML? –

+0

Mis à jour mon message un peu plus loin –

Répondre

2

remplacer

$(this).mouseover(display()); 

avec

$(this).mouseover(display); 

Votre code exécute la fonction display() et passe dans sa valeur de retour à mouseover. Mais vous devez passer une référence de fonction.

0

Faire la fonction d'affichage anonyme, un peu comme vous HVE fait dans le reste du Code yoru:

$('a').each(function() 
    { 
     if($(this).attr('id').match(/prod/)) 
     { 
      $(this).mouseover(function() { 
       $('div').each(function() 
       { 
        if($(this).attr('id').match(/sx/)) 
        { 
         alert("hi") 
        } 
       }); 
      }); 
     } 
    }); 

EDIT:

En ce qui concerne $("div") est nul, vous pouvez préciser davantage. Pouvez-vous me dire quelque chose sur ce qui suit:

var obj = $("div");  //is obj null? 
alert($("div").length); //do you get a number? If so, what is it? 
+0

J'ai essayé, mais dit $ ("div") est null – jess

Questions connexes