2012-01-06 4 views
0

아래 링크는 DeleteUser 함수를 호출하고 아래 메시지를 표시합니다. 링크를 다시 클릭하면 메시지가 반복되고 링크를 클릭 할 때마다 계속해서 메시지가 표시됩니다. 이 동작을 중지 할 수있는 방법이 있습니까? 한 번 클릭 한 후 링크를 ​​숨기려고했지만 요소가 남아 있으므로이 메시지 상자를 공유하는 다른 링크를 클릭하면 첫 번째 메시지가 계속 표시됩니다. APPEND와 text() 또는 html()jQuery 여러 번 클릭 할 때 한 번 요소 표시

-append()에서

<a href="#" onclick="DeleteUser('{id}','{deleting}')">Delete User</a> 

function DeleteUser(id, deleting){ 

var message = "<h1>Are you sure? All records associated with this user will be deleted also.</h1>"; 

$('#managermsg').append(message); 
$('#managermsg').fadeIn(500); 
$("#usermanager").slideToggle("slow"); 
}; 

답변

0

변화는 당신이 그것을 할 때마다 추가이 다른 사람과 당신은 뭐죠 이미 대체합니다.

+0

를 HTML을 사용() 완벽하게 작동합니다. 고맙습니다. – stevenpepe

+0

괜찮습니다! 내 대답을 받아들이면 감사하겠습니다 (왼쪽의 체크 표시를 눌러주십시오) 감사합니다! – Evan

1

.one()을 사용할 수 있습니다.

$("a").one("click", function() { 
    // do your stuff 
} 

또는 링크가 이미 .data() 속성을 추가하여 클릭되었다는 사실을 저장할 수 있습니다.

$('a').click(function() { 
    var a = $(this); 
    if (a.data('clicked') == 'clicked') return false; 

    // do your stuff 
    a.data('clicked', 'clicked'); 
}); 

무엇이든지 당신은 정말로 그 인라인 js (유지 보수 용이성과 깨끗한 코드를 위해)를 떨어 뜨려야합니다.

+0

인라인 js? 당신은 명확히 할 수 있습니까? – stevenpepe

+0

예, 때로는 모든 것이 작동 할 때까지 인라인으로 작성한 다음 분리합니다. 감사. – stevenpepe

0

이를 사용할 수 있습니다

<a href="#" onclick="DeleteUser('{id}','{deleting}'); this.onclick = null;">Delete User</a> 

또는 :

<a href="#">Delete User</a> 

$("a").one("click", function(){ 
    DeleteUser('{id}','{deleting}'); 
}); 
관련 문제