그래서 CRUD 인터페이스에 엄청난 테이블이있는 페이지가 있습니다. span 내의 각 링크는 다른 페이지에서 내용을 가져 오는 jQuery UI Dialog Form을 호출합니다. 발생하는 작업 (이 경우 생성)이 완료되면 결과 데이터를 테이블에 추가하고 테이블을 강제합니다. 이것은 모두 JS와 DOM 내에서 발생합니다.페이지를 새로 고침하지 않고 데이터를 추가 한 후 동적 jQuery 대화 상자. 가능한?
이 문제는 새 테이블 행의 CRUD 링크가 실제로는 span.ini에있는 모든 원본 링크 만 스캔되고 대화 상자 양식 생성을 트리거하지 않으며 페이지를 다시로드하지 않기 때문에, 새 링크를 볼 수 없습니다.
코드는 다음과 같습니다
기본적으로$(document).ready(function() {
var $loading = $('<img src="/images/loading.gif" alt="Loading">');
$('span a').each(function() {
var $dialog = $('<div></div>')
.append($loading.clone());
var $link = $(this).one('click', function() {
// Dialog Stuff
success: function(data) {
$('#studies tbody').append(
'<tr>' +
'<td><span><a href="./?action=update&study=' + data.study_id + '" title="Update Study">Update</a></span></td>' +
'</tr>'
);
fdTableSort.init(#studies); // This re-sorts the table.
$(this).dialog('close');
}
$link.click(function() {
$dialog.dialog('open');
return false;
});
return false;
});
});
});
,하는 브라우저 페이지를 새로 고침 할 날을 시작하지 않고 페이지 링크 jQuery를 재평가를 트리거 할 수있는 방법이 있다면 내 질문은? 당신의 대화가 완전히 동적으로 생성 및 추가됩니다
$(document).ready(function() {
var $loading = $('<img src="/images/loading.gif" alt="Loading">');
$('span a').click(function() { //changed here
var $dialog = $('<div></div>')
.append($loading.clone());
//rest of your code
}
을} 그래서
을 이런 식으로 : 만약 내가 제대로 이해하고
각 기본 질문과 관련이 있습니까? 나는 .live를 가장 합리적인 (그리고 논리적 인 문서에 따라) 나다 (nada)로 보이는 섹션에 추가하려고 시도했다. 대신에 .each를 대체 할 것을 제안한다면, 할 수 있다고 말하지만, 가능하면 회피 할 수 있기를 바랍니다. 감사합니다. – Arun
"span a"가 테이블의 모든 항목에 대해 작동하므로 각각을 제거합니다 (또는 적어도 시도하십시오). 필요한 경우 선택기를보다 적합한 것으로 변경할 수 있습니다. 하지만 각 선택기를 "live"버전 인 $ link.live ('click', function() {...})로 변경하면이 트릭이 수행됩니다. 또한 $ (this) .one ('click'...)을 라이브 또는 바인딩으로 변경하려고합니다. 설명서에 명시된 바와 같이 핸들러는 첫 번째 실행 후에 바인딩되지 않으므로 한 번만 작동하지만 물론 그게 의도 된 동작이 아닌 경우에만. – realshadow
이 작업이 끝났습니다. 제대로 작동하려면 코드를 변경해야했지만 놀랍도록 작동합니다. 감사합니다! – Arun