Подтвердить что ты не робот

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

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

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

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

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

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

4b9b3361

Ответ 1

см. event.data

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);
});

Ответ 2

Откуда вы получите эти значения? Если они из самой кнопки, вы можете просто сделать

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)));
}

Ответ 3

var someParam = xxxxxxx;

commentbtn.click(function(){

    alert(someParam );
});

Ответ 4

Я не мог заставить это работать вообще. Все потому, что я выполняю свои функции по разным файлам. То, что я сделал, чтобы обойти это, - использовать переменную окна (и я надеюсь, что это поможет вам в будущем):

  • В моем первом файле. (Мое мнение) У меня
<th class="text-right"><label class="select200" onClick="select200()">Select 200 </label></th>
  • В моем втором файле app.js я настраиваю переменную окна для моего рабочего файла. Я объявил пространство имен в {window} осторожно, поэтому я бы не перезаписал другое пространство имен.
function select200() {
    window.fullselect200= {number : 200};

    $('#new_button').click();
}
  • В моем последнем файле тот, кто делает всю работу:

$('#new_button').on("click", function(event) { 
        if(window.fullselect200.number) {
            //do work
            console.log(window.fullselect200.number);

        }
    });

Выполнение этого позволит мне получить доступ к набору числовых переменных, который я буду использовать для итерации по циклу.

Ответ 5

Альтернатива метода 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