Passing parameters to click() & bind() event in jquery?

后端 未结 4 1358
傲寒
傲寒 2020-12-04 10:10

I want to pass few parameters to Click() event in jquery, I tried following but its not working,

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


        
相关标签:
4条回答
  • 2020-12-04 10:32
    var someParam = xxxxxxx;
    
    commentbtn.click(function(){
    
        alert(someParam );
    });
    
    0 讨论(0)
  • 2020-12-04 10:35

    From where would you get these values? If they're from the button itself, you could just do

    commentbtn.click(function() {
       alert(this.id);
    });
    

    If they're a variable in the binding scope, you can access them from without

    var id = 1;
    commentbtn.click(function() {
       alert(id);
    });
    

    If they're a variable in the binding scope, that might change before the click is called, you'll need to create a new closure

    for(var i = 0; i < 5; i++) {
       $('#button'+i).click((function(id) {
          return function() {
             alert(id);
          };
       }(i)));
    }
    
    0 讨论(0)
  • 2020-12-04 10:44

    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
    
    0 讨论(0)
  • 2020-12-04 10:45

    see event.data

    commentbtn.bind('click', { id: '12', name: 'Chuck Norris' }, function(event) {
        var data = event.data;
        alert(data.id);
        alert(data.name);
    });
    

    If your data is initialized before binding the event, then simply capture those variables in a closure.

    // assuming id and name are defined in this scope
    commentBtn.click(function() {
        alert(id), alert(name);
    });
    
    0 讨论(0)
提交回复
热议问题