簡體   English   中英

將參數傳遞給 jQuery 中的 click() 和 bind() 事件?

[英]Passing parameters to click() & bind() event in jQuery?

我想將幾個參數傳遞給 jQuery 中的click()事件,我嘗試了以下操作,但它不起作用:

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

而且如果我們使用 bind 那么我們將如何做到這一點:

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

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

你從哪里得到這些值? 如果它們來自按鈕本身,你可以這樣做

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

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

commentbtn.click(function(){

    alert(someParam );
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM