我想在jQuery中传递一些参数给click()
事件,我尝试了以下代码但没有成功:
commentbtn.click(function(id, name){
alert(id);
});
并且如果我们使用bind,那么我们该怎么做:
commentbtn.bind('click', function(id, name){
alert(id);
});
我想在jQuery中传递一些参数给click()
事件,我尝试了以下代码但没有成功:
commentbtn.click(function(id, name){
alert(id);
});
并且如果我们使用bind,那么我们该怎么做:
commentbtn.bind('click', function(id, name){
alert(id);
});
commentbtn.bind('click', { id: '12', name: 'Chuck Norris' }, function(event) {
var data = event.data;
alert(data.id);
alert(data.name);
});
如果您的数据在绑定事件之前已经初始化,则可以在闭包中捕获那些变量。
// assuming id and name are defined in this scope
commentBtn.click(function() {
alert(id), alert(name);
});
你从哪里获得这些值? 如果它们来自按钮本身,你可以这样做:
commentbtn.click(function() {
alert(this.id);
});
如果它们是绑定作用域中的变量,您可以从外部访问它们
var id = 1;
commentbtn.click(function() {
alert(id);
});
如果它们是绑定作用域中的变量,在调用单击事件之前可能会发生更改,您需要创建一个新闭包。for(var i = 0; i < 5; i++) {
$('#button'+i).click((function(id) {
return function() {
alert(id);
};
}(i)));
}
An alternative for the bind() method.
Use the click() method, do something like this:
commentbtn.click({id: 10, name: "João"}, onClickCommentBtn);
function onClickCommentBtn(event)
{
alert("Id=" + event.data.id + ", Name = " + event.data.name);
}
Or, if you prefer:
commentbtn.click({id: 10, name: "João"}, function (event) {
alert("Id=" + event.data.id + ", Nome = " + event.data.name);
});
It will show an alert box with the following infos:
Id = 10, Name = João
var someParam = xxxxxxx;
commentbtn.click(function(){
alert(someParam );
});
id
和name
是什么?它们来自哪里?这些值是在单击时获取的还是在绑定时初始化的?单击事件如何知道将什么传递到函数中?它将始终传递事件对象,除此之外不会传递任何其他内容。 - Noufal Ibrahimclick
不知道你想要传递给处理程序的内容。 - Noufal Ibrahim