Передача параметров для события click() & bind() в jquery?


Я хочу передать несколько параметров, чтобы нажать () событие в jquery, я пытался следовать, но его не работает,

commentbtn.click(function(id, name){
    alert(id);
});

а также если мы используем bind, то как мы это сделаем

commentbtn.bind('click', function(id, name){
    alert(id);
});

пожалуйста, помогите!

4 52

4 ответа:

посмотреть событие.данные

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)));
}
var someParam = xxxxxxx;

commentbtn.click(function(){

    alert(someParam );
});

Альтернатива для метода bind ().

используйте метод click (), сделайте что-то вроде этого:

commentbtn.click({id: 10, name: "João"}, onClickCommentBtn);

function onClickCommentBtn(event)
{
  alert("Id=" + event.data.id + ", Name = " + event.data.name);
}

или, если вы предпочитаете:

commentbtn.click({id: 10, name: "João"},  function (event) {
  alert("Id=" + event.data.id + ", Nome = " + event.data.name);
});

Он покажет окно предупреждения со следующей информацией:

Id = 10, Name = João