jQuery evviceDefault ()가 먼저 작동하지 않습니다
-
10-12-2019 - |
문제
다음 코드가 있습니다
$("#logoutLink").click(function(event) {
event.preventDefault();
var dataString = "action=confirm";
$.ajax({
type: "POST",
url: "requests.php",
data: dataString,
success: function(msg) {
if (msg == "success") {
alert('logged out');
} else {
showNotification("error", "" + msg + "");
}
},
error: function() {
showNotification("error", "Could not log you out at this time, try again.");
}
});
return false;
});
.
및 id="logoutlink" 링크
로그인 시스템이 링크를 새로 고치지 않고 링크가있는 HTML 컨텐츠를 추가하기 때문에 먼저 eventDefault가 작동하지 않습니다. 이는 로그 아웃 링크이므로 항목이 HTML에 존재하지 않는 것입니다.문제가 있지만 내 질문은 페이지 새로 고침없이 링크 ID LogoutLink로 HTML 콘텐츠가 HTML 콘텐츠가 추가되었음을 알 수 있습니까?
해결책
질문이 분명하지는 않지만 링크를 동적으로 추가하고, .live('click', ...)
또는 새로운 jQuery 1.7 .on()
를 사용해야합니다.
다른 팁
귀하의 질문은 조금 혼란스러워하지만 live()
를 사용하여 이벤트 핸들러를 바인딩합니다.
$("#logoutLink").live('click', function(event) {
// ...
.
로그인 시스템이 링크를 추가 한 후에 만 Click Handler $("#logoutLink").click(function(event) {}
를 추가해야합니다. 따라서 다음을 수행합니다
function addHandlers(){
$("#logoutLink").click(function(event) {
event.preventDefault();
// anything else
}
}
$(document).ready(function(){
addHandlers();
});
.
링크가 추가되면 addHandlers();
를 호출합니다
제휴하지 않습니다 StackOverflow