2012-01-06 10 views
0

以下のリンクはDeleteUser関数を呼び出し、以下のメッセージを表示します。リンクが再度クリックされると、メッセージが繰り返され、リンクがクリックされるたびにメッセージが繰り返されます。この動作を停止する方法はありますか?一度クリックした後にリンクを非表示にしようとしましたが、要素が残っています。このメッセージボックスを共有する別のリンクをクリックすると、最初のメッセージは引き続き表示されます。jQuery show element複数回のクリックで1回

<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

あなたはそれを毎回追加APPENDとappend()からtext()またはhtml()

に変更し、これらの他の人とあなたがいただきました!すでにそこに置き換えられます。

+0

をHTMLを使用して()完璧に動作します。ありがとうございました。 – stevenpepe

+0

問題ありません!あなたがそれを使用する場合(左のチェックマークを押してください)、私の答えを受け入れると感謝します!ありがとう! – Evan

1

これには.one()を使用できます。

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

それとも、リンクがすでに.data()属性を追加することにより、クリックされたという事実を格納することができます。あなたは本当に(保守性とクリーンなコードのために)そのインラインJSをドロップする必要がありませんどのような

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

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

+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}'); 
}); 
関連する問題