2010-06-03 7 views
0

J'écris une fonction qui bien garder l'utilisateur dans les images de la visionneuse pendant qu'il ajoute au panier. Lorsque vous cliquez sur une image, celle-ci s'agrandit à l'aide de la visionneuse v2. Ainsi, lorsque l'utilisateur clique sur l'image Ajouter, il actualise la page. Quand j'ai demandé à ce sujet au support de jcart ils m'ont dit d'utiliser jquery en direct, mais je ne sais pas comment faire ça. T a essayé ce code mais toujours rien ne se passe:comment créer une fonction en utilisant jquery live?

 jQuery(function($) { 

$('#button') 
    .livequery(eventType, function(event) { 
     alert('clicked'); // to check if it works or not 
     return false; 
    }); 
}); 

J'ai aussi utilisé

jQuery(function($) { 

$('input=[name=addto') 
    .livequery(eventType, function(event) { 
     alert('clicked'); // to check if it works or not 
     return false; 
    }); 
}); 

encore rien ne fonctionnait.

pour le code pour créer ces images http://pasite.org/code/572

J'ai aussi essayé:

function adding(form){ 
$("form.jcart").livequery('submit', function() {var b=$(this).find('input[name=<?php echo $jcart['item_id']?>]').val();var c=$(this).find('input[name=<?php echo $jcart['item_price']?>]').val();var d=$(this).find('input[name=<?php echo $jcart['item_name']?>]').val();var e=$(this).find('input[name=<?php echo $jcart['item_qty']?>]').val();var f=$(this).find('input[name=<?php echo $jcart['item_add']?>]').val();$.post('<?php echo $jcart['path'];?>jcart-relay.php',{"<?php echo $jcart['item_id']?>":b,"<?php echo $jcart['item_price']?>":c,"<?php echo $jcart['item_name']?>":d,"<?php echo $jcart['item_qty']?>":e,"<?php echo $jcart['item_add']?>":f}           
}); 
return false;           
} 

et il semble ajouter à jcart mais encore il rafraîchit encore

Répondre

1

.live() est d'assigner des gestionnaires à la création d'éléments futurs. Sur votre site, cependant, vous rechargez la page afin que .live n'ait aucune incidence. (vous soumettez un formulaire)

Il semble que vous vouliez faire une requête ajax pour ajouter l'article au panier et mettre à jour cet affichage sur le site? Ce serait dans le soumettre du formulaire et si jcart est créé dynamiquement alors oui, live est la réponse.

$('.jcart').live('submit', function() { 
    // aggregate form elements into object and send via ajax 
    // update the cart on the page, since we haven't reloaded the page the light box is still displayed 
}); 

En ce qui concerne commentaire:

Lorsque vous envoyez une demande ajax, jquery prend un objet comme argument. Tels que $.post('urlToPostTo.php', { title: 'title of whatever', id: 5 });

Le serveur voit la même chose que:

<form id="myForm" action="uroToPostTo.php" method="POST" > 
    <input type="text" name="title" value="title of whatever" /> 
    <input type="hidden" name="id" value="5" /> 
    <input type="submit" name="submit" value="submit" /> 
</form> 

Donc, si vous deviez agréger les données du formulaire dans un objet, il y a quelques façons (même certains plugins jquery pour vous aider). La façon primitive serait:

var $form = $('#myForm'); // instead of finding myForm over and over, cache it as a variable to use 
var objToSend = {}; 
objToSend.title = $form.find('input[name=title]').val(); 
objTosend.id = $form.find('input[name=id]').val(); 
$.post('urlToPostTo.php', objToSend); 

Une solution plus élégante est d'avoir boucle quelque chose à travers tous les éléments de forme et de les mettre dans un objet pour vous. Les plugins comme http://docs.jquery.com/Plugins:Forms rendent cela un peu plus facile.

Le résultat final est que les éléments de formulaire sont placés dans un objet à envoyer à votre script.

+0

@ Dan Heberden je suis un débutant que voulez-vous dire des éléments de formulaire agrégés dans l'objet et envoyer par ajax – Mahmoud

+0

mise à jour de réponse pour vous. Après cela, je chercherais de bonnes façons de créer des formulaires ajax, ce qui fonctionne pour vous de récupérer des données, la validation de formulaire avant de l'envoyer, ce genre de choses. –

+0

@ Dan Heberden J'ai réussi à arrêter la lightbox de quitter mais pourtant le formulaire n'est pas soumis à jcart ce que j'ai fait est simplement ajouté à côté de la forme 'onsubmit = 'return false'' mais cela a causé le formulaire à ne pas être envoyé à jcart – Mahmoud

Questions connexes