2010-11-22 5 views
2

J'ai dans mon esprit une énorme question. Ou juste des problèmes avec la compréhension de la fonction de vol stationnaire. J'ai essayé beaucoup de méthodes, j'ai lu beaucoup de tutoriels, mais je n'ai pas compris, de quoi ai-je besoin. C'est peut-être stupide, mais je suis en train de créer un panneau d'administration avec jQuery avec des compétences bas-savoir.Boutons d'administration de vol stationnaire et d'affichage

Comme vous pouvez le voir dans this image, ceci est une liste d'eshop simple. Je veux faire cela, si vous êtes un administrateur, lorsque vous passez la souris sur un élément, alors vous pouvez voir les boutons d'administration, comme dans this image, MAIS seulement sur l'élément planétaire. S'il vous plaît, aidez-moi à le faire facilement.

Quoi qu'il en soit, voici mon code pour cette partie de la page:

<!-- Script --> 
<script type="text/javascript"> 
$(document).ready(function(){ 
    $(".admin_item").hide(); 
    $('.item').hover(function() { 
    $(".admin_item").slideToggle(".admin_item"); 
    }); 
}); 
</script> 

<!-- $admin_item --> 
<? 
    $admin_item = '<div class="admin_item" style="position: absolute; padding-left: 380px;"><a href="?edit"><img src="style/icon/pencil.png" alt="" /></a><a href="?delete"><img src="style/icon/delete.png" alt="" /></a></div><div class="clear"></div>'; 
?> 

<!-- list --> 
<div class="page_content" id="goods"> 
    <? 
    $items = array (
     1 => array("Lorem ipsum dolor sit amet, consectetur adipiscing elit.","3.65","List 3-1"), 
     2 => array("Proin ut est ut purus venenatis suscipit tristique id mi.","4.00","List 3-2"), 
     3 => array("Integer posuere mauris dapibus massa malesuada id malesuada velit congue.","5.49","List 3-3"), 
     4 => array("Vivamus eu purus quam, ut convallis urna.","7.40","List 3-2"), 
     5 => array("Suspendisse eu felis erat, ut mollis erat.","8.20","List 3-1"), 
     6 => array("Morbi malesuada facilisis neque, at dapibus nibh elementum quis.","9.85","List 3-1"), 
     7 => array("Proin euismod mauris ac lorem sodales faucibus.","10.00","List 3-2"), 
     8 => array("Maecenas vitae neque ac nibh venenatis laoreet nec sed nisi.","12.90","List 3-3"), 
    ); 
    $i=1; 
    foreach($items as $item) : 
    ?> 
    <?=$admin_item?> 
    <div class="item"> 
    <div class="details floatleft"> 
     <div class="image floatleft"><img src="images/items/example/thumbs/<?=$i?>_s.jpg" alt=""></div> 
     <div class="description floatleft"><?=$item[0]?></div> 
     <div class="price floatleft">LVL <?=$item[1]?></div> 
     <div class="category floatleft"><?=$item[2]?></div> 
    </div> 
    <div class="cart floatleft"><img src="style/shopping_cart.png" alt="" /></div> 
    </div> 
    <div class="clear"></div> 
    <? $i++; endforeach;?> 
</div> 

Répondre

1

Il peut être parce que vous faites votre comme cette bascule diapositive:

$(".admin_item").slideToggle(".admin_item"); 

Il devrait être: $(".admin_item").slideToggle([ duration ], [ easing ], [ callback ]);

Essayez ceci: $(".admin_item").slideToggle('fast');

+0

Ouais, en fait, c'est vrai, ce que vous dites sur les durées etc. mais je souhaite que cela fonctionne ... – RobertR

1

W Je suppose que vous utilisez des variables de session pour contenir vos informations utilisateur. Vous devriez probablement modifier votre message pour inclure cette information, car c'est très pertinent. Ainsi, lorsqu'un utilisateur se connecte, définissez une variable de session $_SESSION['permit'] = "admin";, ou parfois il est plus facile d'utiliser les niveaux de privilèges numériques: $_SESSION['permit'] = 100;.

Maintenant, lorsque vous chargez cette grab PHP variable de session et de le mettre local: $permit = $_SESSION['permit']; et sur votre boucle pour créer les éléments de vente ont une instruction if comme celui-ci où vous souhaitez le panneau d'administration apparaisse:

if($permit > 10) { 
echo "<div class='admin_item' style='position: absolute; padding-left: 380px;'><a href='?edit'><img src='style/icon/pencil.png' alt='' /></a><a href='?delete'><img src='style/icon/delete.png' alt='' /></a></div><div class='clear'></div>"; 
} 

maintenant dans votre jquery mettre ceci:

$("div.item").hover(function() { 
    $("div.admin_item").slideToggle(500); 
}); 

Hope this helps!

EDIT: Désolé, vous avez modifié votre post pendant que j'écrivais ma réponse. Votre erreur jquery réelle est que vous écrivez votre fonction slideToggle mal. La syntaxe est la suivante: $ ("object"). SlideToggle (duration);

Voir les docs à http://api.jquery.com/slideToggle/

+0

Merci pour la réponse :) Ne vous inquiétez pas, je n'ai pas oublié la sécurité :) il c'est: if ($ rights> 2) {///} :) Quoi qu'il en soit, cela n'a pas aidé à résoudre le problème. – RobertR

0

Je l'ai fait! :)

facile ceci:

  $("div.admin_item").hide(); 
       $("div.item").hover(function() { 
       $(this).find("div.admin_item").fadeIn(500); 
       },function(){ 
       $(this).find("div.admin_item").fadeOut(500); 
      }); 

Merci les gars pour votre soutien!