我使用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保存到任何变量以供将来使用。它将失去它的约束力。有人试过这样做吗?有什么工作吗?或者这绝对是个坏主意?谢谢你回答我的问题。
答案 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。