문제

다음 코드가 있습니다

$("#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) {
    // ...
.

http://api.jquery.com/live/

로그인 시스템이 링크를 추가 한 후에 만 Click Handler $("#logoutLink").click(function(event) {}를 추가해야합니다. 따라서 다음을 수행합니다

function addHandlers(){
    $("#logoutLink").click(function(event) {
         event.preventDefault();
         // anything else
    }
}

$(document).ready(function(){
    addHandlers();
});
.

링크가 추가되면 addHandlers();를 호출합니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top