Сохранить объект Jquery без потери привязки - PullRequest
0 голосов
/ 17 апреля 2010

У меня есть объект, созданный с помощью 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 ]

1 голос
/ 17 апреля 2010

вместо привязки кликов, как это вам нужно использовать живую функцию, которая поддерживает события

$('yourelement').live('click', function(){
// some stuff
});
0 голосов
/ 17 апреля 2010

Я попробовал XGreen и Fudgey предложить использовать Live привязку.

Но все равно не будет работать. Теперь у меня есть свой ответ. Я буду использовать статическое связывание a.k.a onClick.

это то, что я делаю.

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

спасибо за ваш ответ XGreen и Fudgey.

0 голосов
/ 17 апреля 2010

Вы пробовали использовать jQuery live ?

Это в основном позволяет вам динамически добавлять объекты и иметь для них предустановленные привязки. Попробуйте что-то вроде

$(div).live('click', function(){
 alert("do some action here");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...