2010-06-15 4 views
2

I made an example, je l'ai copié du jQuery website encore droit, il ne transfère pas ..jQuery Noob: transfert non transfert

HTML:

<div class="addToCart"> 
    BLAHHHH 
    </div> 
    <br> 
    <br> 
    <br> 
    <br> 
    <div class="handelv"> 
    MORE BLAAAHH 
    </div>​ 

jQuery:

$(document).ready(function() { 

$(".addToCart").click(function() { 
     var i = 1 - $(".addToCart").index(this); 
     $(this).effect("transfer", { to: $(".handelv").eq(i) }, 1000); 
}); 

    });​ 

Qu'est-ce que est-ce que je me suis trompé?

+0

Avez-vous essayé seulement '$ (« addToCart. ») .index(); '? – Reigel

Répondre

5

http://jsfiddle.net/TuMsc/7/

  1. Vous ne avez pas compris la bibliothèque de l'interface utilisateur dans l'exemple
  2. $(".handelv").eq(i)i = 1. Votre sélecteur ne correspond qu'à un élément. Vous devez donc définir i sur 0.
  3. Vous devez définir un style pour .ui-effects-transfer, afin qu'un visible-quelque chose se produise.

Tout votre code peut être changé juste:

$(".addToCart").click(function() { 
     $(this).effect("transfer", { to: $(".handelv") }, 1000); 
}); 
+0

Merci, je ne savais pas que j'avais besoin d'inclure la bibliothèque de l'interface utilisateur et le CSS aussi. Grande aide, je suis nouveau à jQuery alors merci beaucoup :) – Kyle

1

Le problème que vous avez une incompréhension comment les sélecteurs dans l'exemple sont utilisés. Les méthodes index et eq sélectionnent le premier ou le second div.

si vous modifiez le code à ceci:

$(".addToCart").click(function() { 
     $(this).effect("transfer", { to: $(".handelv") }, 1000); 
}); 

Vous devez également définir .ui-effects-transfer pour afficher quelque chose; une bordure est utilisée dans l'exemple (qui est la classe de l'élément qui est affiché pendant le transfert) et comprennent jquery UI

0

essayez ceci:

$(document).ready(function() { 

$(".addToCart").click(function() {  
     $(this).effect("transfer", { to: $(".handelv") }, 1000); 
}); 

    });​