保存Jquery对象而不会丢失其绑定

时间:2010-04-17 03:13:03

标签: jquery binding object

我使用jquery创建了对象,其中每个对象都有自己的绑定。

function closeButton(oAny){

var div = create_div();
$(div).attr("id","btn_"+$(oAny).attr("id"));
var my_parent = this;

$(div).html("<img src='"+ my_parent._base_url +"/assets/images/close.gif'>");
$(div).click(function(){
       alert("do some action here");
});

return div;

}


var MyObject = WindowObject();
var btn = closeButton(MyObject);

$(myobject).append(btn);
$("body").append(myobject); //at this point button will work as i expected    


//save to array for future use
ObjectCollections[0] = myobject;

//remove
$(myobject).remove();

$(body).append(ObjectCollections[0]); // at this point button will not work

我第一次可以显示我的对象,关闭按钮正如我预期的那样工作。但是,如果我将myobject保存到任何变量以供将来使用。它将失去它的约束力。有人试过这样做吗?有什么工作吗?或者这绝对是个坏主意?谢谢你回答我的问题。

3 个答案:

答案 0 :(得分:1)

而不是像这样的点击绑定,你需要使用保持事件活着的实时功能

$('yourelement').live('click', function(){
// some stuff
});

答案 1 :(得分:0)

您是否尝试过使用jQuery live

它基本上允许您动态添加对象并为其预设绑定。尝试像

这样的东西
$(div).live('click', function(){
 alert("do some action here");
});

答案 2 :(得分:0)

我尝试使用XGreen和Fudgey建议使用Live绑定。

但仍然行不通。 我现在有自己的答案。我将使用静态绑定a.k.a onClick。

这就是我的工作。

$(btn).attr("onClick","someFunction('#"+ $(myParentObject).attr("id")+"')");

感谢你的回答XGreen和Fudgey。