나는 이로 인해 당황 스럽다. 나는 이것을 작동시킬 수 없다. 예상대로 작동 .post 로그인 폼은 $의 외부에서 만든 경우jquery에서 동적으로 생성 된 양식 제출 문제
function appInit() {
$.post(clubapp,function(d){
if (d == "failure:nolog") { $("#shell").html(loginform); }
});
}
appInit();
$("#loginform").submit(function(e){
alert("x"); // Does not alert
});
을하지만이 첫 번째 블록은 로그인 폼을 표시하지만, 제출 이벤트가 잡힐되지 않습니다.
function appInit() {
$.post(clubapp,function(d){
if (d == "failure:nolog") { j = 1; }
});
if (j == 1) { $("#shell").html(loginform); }
}
appInit();
$("#loginform").submit(function(e){
alert("x"); // catches and alerts "x"
});
이것은 매우 비효 식적 인 해결 방법으로 보이며 게시 작업 내부에서 작동하지 않는 이유가 궁금합니다.
편집 : 제 2의 작품을 잘못 설명했습니다. 질문을하기 위해 디버깅 코드를 제거했지만 "if (j == 1)"앞뒤에 j 값을 표시하는 경고 쌍을 사용하여 어떻게 든 작동하게했습니다. 이러한 경고를 제거하면 실패하게됩니다.
단추를 만들 때 이벤트를 호출해야한다고 생각합니다. 그렇지 않으면, 당신이 이벤트를 첨부하고, 게시 기능이 여전히 실행 중이고, 이벤트가 정의되지 않은 요소에 첨부됩니다. –
Ajax가 비동기입니다. 제출 핸들러를 바인드하는 행은 loginForm을 페이지에 추가하기 전에 행에서 발생합니다. 양식이 페이지에 추가 된 후 콜백에서 처리기를 바인딩하십시오. –