我希望我的jquery在单击按钮时加载一个函数。
这很好用:
$(document).ready(function() {
$("#register").click(function() {
alert("button");
});
此文档将在文档加载前显示test()
函数:
$(document).ready(function() {
function test(param1, param2){
alert("param1: "+param1+" param2: "+param2);
}
$("#register").click(test("a","b"));
});
我该如何解决这个问题?
答案 0 :(得分:3)
$(document).ready(function() {
$("#register").click(function() {
alert("button
});
应该是:
$(document).ready(function () {
$("#register").click(function () {
alert("button");
});
});
和
$(document).ready(function() {
function test(param1, param2){
alert("param1: "+param1+" param2: "+param2);
}
$("#register").click(test("a","b"));
});
应该是
$(document).ready(function () {
function test(param1, param2) {
alert("param1: " + param1 + " param2: " + param2);
}
$("#register").click(function () {
test("a", "b");
});
});
一旦$(document).ready()
准备好, DOM
就会激活。
我认为你的问题出现在这段代码中:
$("#register").click(test("a","b")); // I suppose it is executing test().
答案 1 :(得分:2)
您只需通过事件处理程序传递参数,例如this.t允许您将数据映射传递给事件对象,该事件对象通过jQuery作为第一个参数自动反馈给事件处理函数。数据映射将作为第一个参数传递给.click()函数,然后是事件处理函数。
$(document).ready(function() {
function test(e){
alert(e.data.param1); // returns "a"
alert(e.data.param2); // returns "b"
}
$("#register").click({param1 : "a" , param2 : "b"} , test);
});
您对事件处理程序Stack Overflow
的了解更多答案 2 :(得分:1)
问题出在您的点击事件处理程序中。这就是你所拥有的:
$("#register").click(test("a","b"));
您可以立即执行test("a","b")
功能。相反,你想传入一个调用它的函数。因此,更正的代码是
$("#register").click(function (){
test("a","b");
});