function manageVoting() {
$("div.votemaincontainer").each(function() {
// variable Declaration and intialization.
var myRating = parseInt($(this).find('#[id$=hfMyVote]').val());
var currentVote = parseInt($(this).find('#[id$=hfCurrentVote]').val());
$('.VoteDownImage').live(click, function() {
ajaxcall(0);
});
$('.voteupImage').live(click, function() {
ajaxcall(1);
});
}
function ajaxcall(a){ // here it's giving error.
var questionID = parseInt($(this).find('#[id$=currentquestionId]').val());
var objectType = 100;
var previousvote = 2;
$.ajax({
url: 'UserControls/Vote/VoteAction.aspx/Voting',
cache: false,
type: 'POST',
data: '{ObjectType: "' + objectType + '", guid: "' + currentGuid + '",previousVote: "' + previousvote + '",vote:"' + a + '"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
var result = eval(data.d);
}
});
}
$(function() {
// manageVoting();
});
Répondre
EDIT: Après avoir amélioré l'indentation du code dans votre question, il semble que vous avez oublié de fermer la boucle .each()
avec });
avant le support de fermeture pour la fonction manageVoting()
.
Une indentation de code appropriée est extrêmement utile.
De même, il n'est pas très logique d'appliquer .live()
dans une boucle. Vous avez seulement besoin de le faire une fois.
Voici votre code avec les améliorations:
// Call these once on page load.
// Note the difference in capitalization in your selectors. Make sure it is
// the same in your HTML classes
$('.VoteDownImage').live(click, function() {
ajaxcall(0);
});
$('.voteupImage').live(click, function() {
ajaxcall(1);
});
function manageVoting() {
$("div.votemaincontainer").each(function() {
// variable Declaration and intialization.
var myRating = parseInt($(this).find('#[id$=hfMyVote]').val());
var currentVote = parseInt($(this).find('#[id$=hfCurrentVote]').val());
}); // closed the .each() loop
}
function ajaxcall(a){ // here it's giving error.
var questionID = parseInt($(this).find('#[id$=currentquestionId]').val());
var objectType = 100;
var previousvote = 2;
$.ajax({
url: 'UserControls/Vote/VoteAction.aspx/Voting',
cache: false,
type: 'POST',
data: '{ObjectType: "' + objectType + '", guid: "' + currentGuid + '",previousVote: "' + previousvote + '",vote:"' + a + '"}',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
var result = eval(data.d);
}
});
}
$(function() {
// manageVoting();
});
réponse originale:
Vous ne spécifiez pas de type pour les paramètres de fonction (ou toute autre variable) en javascript. C'est à cause de la faute de frappe, où n'importe quelle variable peut être utilisée pour stocker n'importe quel type.
Cette ligne:
function ajaxcall(int a)
devrait être:
function ajaxcall(a)
monsieur pouvez-vous vérifier ceux mon code .. –
@Nishant - Pouvez-vous fournir plus d'informations? Quelle est l'erreur? – user113716
@Nishant - quand vous obtenez fait déroulage votre code, il y a beaucoup de problèmes. En regardant votre code, vous essayez d'avoir un vote haut/bas sur les images.
Eh bien, j'ai quelques questions et déclarations:
- Qu'est-ce que la variable locale
manageVoting
utilisé? - Pourquoi avez-vous des variables commençant par des majuscules et d'autres avec des minuscules? La référence
this
enparseInt($(this).find('#[id$=currentquestionId]').val())
n'est pas ce que vous cherchez pour obtenir l'ID. Essayez de renommer votre fonction pour autre chose queajaxCall
. - Ne créez pas votre propre chaîne de requête, laissez JavaScritp et jQuery gérer cela.
est ici un début avec votre code:
function updateVote(elementClicking, vote){ // here it's giving error.
var imagVote = {
ObjectType: 100,
guid: parseInt($(elementClicking).find('#[id$=currentquestionId]').val()),
previousVote: 2,
vote: vote
} ;
$.ajax({
url: 'UserControls/Vote/VoteAction.aspx/Voting',
cache: false,
type: 'POST',
data: imagVote,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
success: function (data) {
var result = eval(data.d);
}
});
}
$('.VoteDownImage').live(click, function() {
updateVote(this, 0);
});
$('.voteupImage').live(click, function() {
updateVote(this, 1);
});
function manageVoting() {
$("div.votemaincontainer").each(function() {
// variable Declaration and intialization.
var myRating = parseInt($(this).find('#[id$=hfMyVote]').val());
var currentVote = parseInt($(this).find('#[id$=hfCurrentVote]').val());
});
}
$(function() {
manageVoting();
});
Un dernier conseil indésirable. Ne compliquez pas votre code comme il se doit ## Titre ##
- 1. Ajax appel de fonction
- 2. appel ajax à l'intérieur d'une fonction
- 3. Erreur dans mon appel Fonction
- 4. Ajax appel fait par fonction jQuery .load
- 5. ajax appel à travers
- 6. appel javascript/ajax fonction de php
- 7. Appel jquery $ .ajax dans la fonction Javascript
- 8. JQUERY AJAX CHARGE Fonction Erreur
- 9. Ajax appel à la fonction php dans un contrôleur
- 10. Appel d'une fonction jQuery à l'intérieur d'un code html à partir d'un appel AJAX
- 11. appel Ambigu à une fonction
- 12. Jquery Ajax appel à webservice échoue
- 13. WordPress fatale erreur: appel à la fonction indéfinie
- 14. CakePHP - Erreur fatale: Appel à fonction non définie
- 15. Erreur fatale: Appel à la fonction indéfinie msg_get_queue()
- 16. Cakephp saveAll() Erreur fatale: Appel à une fonction membre getColumnType()
- 17. ExtJS Ajax Appel
- 18. jquery erreur ajax
- 19. Appel de la fonction de plugin jquery à partir de html retourné par un appel ajax
- 20. Appel ajax javascript à la page onload
- 21. Ajax Appel à monorail contrôleur JQuery
- 22. Flash - appel AJAX
- 23. SimpleModal ajax appel
- 24. Appel d'une fonction python sur le Web en utilisant AJAX?
- 25. Appel de la fonction PHP en utilisant JQuery .ajax()
- 26. Wordpress: comment appeler une fonction plugin avec un appel ajax?
- 27. Comment lancer un appel ajax après un autre appel ajax?
- 28. Appel AJAX dans la fonction de soumission de formulaire jQuery
- 29. Exécuter un appel AJAX sur la fonction de déchargement
- 30. Jquery, enregistrer indépendamment une fonction pour chaque appel ajax
Quelle est votre question? –
Nishant - J'ai amélioré l'indentation de code dans votre question en utilisant [jsbeautifier.org] (http://jsbeautifier.org). Une indentation correcte du code peut résoudre les problèmes rapidement. : o) Voir ma réponse mise à jour. – user113716