$(document).ready(functi开发者_如何学运维on () {
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" />
I need a function to be called on load and click. But somehow doSomething()
is called two times on load. What's going on..??
Change the ready fragment to
$(document).ready(function() {
doSomething(1);
$('#pp').click(function() {
doSomething(2);
});
});
$(document).ready(function () {
doSomething(1);
$('#pp').click( function(){doSomething(2);} );
});
You need to wrap what you pass to .click()
in a function {}
. Otherwise it executes when the .click()
line executes and the result is passed to .click()
.
I think there's an error in your event-binding. It should be:
$('#pp').bind('click', function () { doSomething(2); });
精彩评论