JQ click() 事件不会绑定到按钮
JQ click() event wont bind to a button
我在页面上有一个函数 运行 根据特定的生成按钮
一套规则。当我尝试获取按钮并将点击事件绑定到它们时,问题就开始了。
这是我处理按钮的方式:
function button_Func(user, friend) {
var action = "";
var buttons = $("button");
buttons.each(function() {
var button = this;
switch ($(this).val()) {
case 'addFriend':
action = "add_Friend";
friend_Stat(button, user, friend, action);
break;
case 'approve':
action = "approve_friend";
break;
case 'decline':
action = "not_Friend";
friend_Stat(button, user, friend, action);
break;
case 'unfriend':
action = "de_Friend";
friend_Stat(button, user, friend, action);
break;
case 'regret':
action = "update_Friend";
friend_Stat(button, user, friend, action);
break;
case 'regret_request':
action = "de_Friend";
friend_Stat(button, user, friend, action);
break;
default:
break;
}
});
}
正如我所说,这有效,但绑定部分无效:
function friend_Stat(button, user, friend, action)
{
button.click(function() {
$.post('ajax.php', {
user_id: user,
friend: friend,
ajax: action
},
function(data) {
if (!data) {
$('#errPopup').html(data);
} else location.reload(true);
}
);
});
}
我尝试了所有我能想到的方法,但我保留了 运行 这个,但没有任何键绑定成功...
您正在传递 JavaScript DOM 按钮对象,因此您无法对其调用 jQuery 方法。你需要写 var button = $(this);
然后你可以调用 button.click();
我在页面上有一个函数 运行 根据特定的生成按钮 一套规则。当我尝试获取按钮并将点击事件绑定到它们时,问题就开始了。 这是我处理按钮的方式:
function button_Func(user, friend) {
var action = "";
var buttons = $("button");
buttons.each(function() {
var button = this;
switch ($(this).val()) {
case 'addFriend':
action = "add_Friend";
friend_Stat(button, user, friend, action);
break;
case 'approve':
action = "approve_friend";
break;
case 'decline':
action = "not_Friend";
friend_Stat(button, user, friend, action);
break;
case 'unfriend':
action = "de_Friend";
friend_Stat(button, user, friend, action);
break;
case 'regret':
action = "update_Friend";
friend_Stat(button, user, friend, action);
break;
case 'regret_request':
action = "de_Friend";
friend_Stat(button, user, friend, action);
break;
default:
break;
}
});
}
正如我所说,这有效,但绑定部分无效:
function friend_Stat(button, user, friend, action)
{
button.click(function() {
$.post('ajax.php', {
user_id: user,
friend: friend,
ajax: action
},
function(data) {
if (!data) {
$('#errPopup').html(data);
} else location.reload(true);
}
);
});
}
我尝试了所有我能想到的方法,但我保留了 运行 这个,但没有任何键绑定成功...
您正在传递 JavaScript DOM 按钮对象,因此您无法对其调用 jQuery 方法。你需要写 var button = $(this);
然后你可以调用 button.click();