내 프로젝트에서 개체 리터럴을 사용하고 있습니다. jquery로 선택을 타겟팅하고 있습니다. 그것은 처음에는 잘 작동하지만 대상 부분이 AJAX로 다시로드되면 더 이상 그 요소를 대상으로 지정할 수 없습니다. 하지만 나는 방화범이 눈에 띈다. 거기에있는 방화범이 ... 내 코드가 작동하는지 테스트하기 위해 console.log()를 사용하고있다.하지만 그걸 선택하고 싶지는 않다. 따라서 작동하려면 브라우저 전체를 새로 고쳐야합니다. AJAX dom reload 및 selector와 어떤 관련이 있는지 알고 있습니까? 나는 그것이 DOM이 다시로드 및 자체 또는 그 라인을 따라 뭔가를 다시 그리는 함께 할 수있는 뭔가 생각AJAX를 통해 다시로드 할 때 내 요소가 대상으로 지정되지 않습니다.
... 여기
내 코드입니다 : 당신이 페이지에 요소를 교체하는 경우Module.editWishlistTitle = {
wishListContent: $('.mod-wish-list-content'),
title: $('.title').find('h2'),
titleTextField: $('#wishlist-title-field'),
titleInnerContainer: $('.title-inner'),
editTitleForm: $('.edit-title-form'),
submitCancelContainer: $('.submit-cancel'),
notIE9: $.browser.msie && $.browser.version < 9,
edit: function() {
var fieldTxt = this.titleTextField.val(),
editForm = this.editTitleForm,
titleParent = this.titleInnerContainer,
fieldCurrentTitle = this.title.text();
this.titleTextField.val(fieldCurrentTitle);
this.submitCancelContainer.removeClass('hidden');
if (!this.notIE9) {
editForm.css('opacity', 0).animate({ opacity: 1 }).removeClass('hidden');
titleParent.addClass('hidden').animate({ opacity: 0 });
console.log(editForm);
} else {
editForm.removeClass('hidden');
titleParent.addClass('hidden');
}
}
init: function() {
var self = this;
console.log(this.editTitleForm);
//edit
this.wishListContent.delegate('.edit-title a', 'click', function (e) {
self.edit();
e.preventDefault();
});
};
답장을 보내 주셔서 감사합니다. @epascarello,하지만 어떻게 새 요소를 가리 키도록 참조를 다시 하시겠습니까? 이것은 내가 잃어버린 곳입니다 ... 내 코드에서 init()에서 모든 선택자를 다시 작성합니까? 그리고 난 대리인 BTW를 사용하고있어 ... 그래서 일반적으로 새로운 요소를 타겟팅 문제가 안된다 – Shaoz
귀하의 의견에 따라 편집 된 응답. – epascarello
고맙습니다. @epascarello, 이제 시도해 보겠습니다. – Shaoz