如何将click事件绑定到jQuery中的clone按钮

时间:2015-02-04 15:02:46

标签: jquery

我正在开发一个应用程序,它提供了从jqGrid下载文件的功能。

jqGrid有几列和一列,它们将显示每行的下载按钮。 用户必须单击它,然后开始下载。  对于这个下载按钮我用过 jsp中的html输入标记如下,

<input type="button" id="download" height="30px" width="100px" value="Download">

在我的jqgrid代码中,我正在尝试克隆此按钮,如下所示。

{
  name:'click to download',
  index:'click to download',
  width:50,
  formatter: function(cellvalue, options, rowObject){
    var button = $("#download").clone(true);
    button.addClass(".button");
    $("body").on("click",".button",function(){
      alert("hello");
    });
    return button[0].outerHTML;
  },
  sortable: false
}

我想在click事件上单独为这个克隆按钮编写一个函数,并将参数传递给该函数,如rowId和cellvalue。

任何人请帮助我,我已尝试在此事件按钮上创建功能,但他们没有被调用。之后我尝试手动创建按钮而不是克隆,但点击功能仍然没有被调用。 非常感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

你应该使用jquery&#34; on&#34;因为&#34; on&#34;一直看着dom中的click事件,简单的点击不能识别你刚刚克隆的元素

syntaxe:

$( "body" ).on( "click", ".your_element", function() {
   // your code here
});

注意:使用类而不是ID。

答案 1 :(得分:1)

在您的代码中,尝试更改此内容:

button.addClass(".button");

到此(删除前缀期间):

button.addClass("button");