2010-08-24 4 views
0
$(document).ready(function() { 
doSomething(1);  
$('#pp').click(doSomething(2));//why is this called?? I didn't click the button.. 
}); 

function doSomething(v) { 
alert(v); 
} 
</script> 

<body> 

<input type="button" id="pp" value="asdf" /> 

J'ai besoin d'une fonction pour être appelée en charge et cliquez. Mais en quelque sorte doSomething() est appelé deux fois en charge. Que se passe-t-il..??Pourquoi ma fonction est appelée deux fois?

+2

Voir: http://stackoverflow.com/questions/2316158/jquery-how-do-you-pass-this-as- function-parameter/2316194 # 2316194 – deceze

+0

Merci les gars d'avoir répondu à ma question, vraiment. – Deckard

Répondre

2

Modifier le fragment prêt à

$(document).ready(function() { 
    doSomething(1); 
    $('#pp').click(function() { 
    doSomething(2); 
    }); 
}); 
0
$(document).ready(function() { 
doSomething(1);  
$('#pp').click(function(){doSomething(2);}); 
}); 
0

Vous devez envelopper ce que vous passez à .click() dans un function {}. Sinon, il s'exécute lorsque la ligne .click() s'exécute et le résultat est transmis à .click().

0

Je pense qu'il y a une erreur dans votre liaison d'événement. Il devrait être:

$('#pp').bind('click', function() { doSomething(2); }); 
Questions connexes