for simple
try using
$('a#delete').one(function() {
uid = $(this).data('uid');
// Handle your post delete logic here
});
so it just once time click....
On Fri, Apr 27, 2012 at 11:23 PM, John Roberts <[email protected]>wrote:
> Each time the modal is shown, you are binding another click event to the
> delete button. Move the click event binding outside of the modal show
> event, I think that might do it for you.
>
> I could also recommend a few ways to simplify this entire process...
> 1. When the a.delete-button is clicked, set the uid directly on the
> modal's delete button as a data attribute:
> $('a.delete-button').click( function() {
> $('a#delete').data('uid', $(this).attr('rel'); // You should also change
> the uid to a data attribute of this link element: data-uid="{{user.uid.0}}"
> });
>
> 2. You only need to mess with the click event for delete, I'm not sure
> all of that other stuff is necessary...
> $('a#delete').click (function() {
> uid = $(this).data('uid');
> // Handle your post delete logic here
> });
>
> Hope this helps
>
> On Friday, April 27, 2012 6:38:15 AM UTC-7, tinti wrote:
>>
>> Hi,
>>
>> my modal window used in a table do delete user accounts fires post action
>> as often as I opened the modal already.
>> Means on first user deletion the post request is made one time, second
>> user deletion fires post request 2 times and so on.
>>
>> Button to open modal:
>> <a href="#delete-modal" class="delete-button" data-toggle="modal" rel="{{
>> user.uid.0 }}"><i class="icon-trash"></i> Delete</a>
>>
>> Modal definition:
>> <div class="modal hide fad" id="delete-modal">
>> <div class="modal-header">
>> <a class="close" data-dismiss="modal">x</a>
>> <h3>Delete user confirmation</h3>
>> </div>
>> <div class="modal-body">
>> <p>Please confirm removal of user <strong><i
>> id="uid"></i></strong> by clicking the <strong>Delete</strong> button</p>
>> </div>
>> <div class="modal-footer">
>> {# <a href="#" class="btn btn-primary" data-dismiss="modal"
>> id="cancel">Cancel</a>#}
>> <a href="#" class="btn btn-danger" id="delete">Delete</a>
>> </div>
>> </div>
>>
>>
>> The js I use to modify and fire things:
>> $(document).ready(function() {
>> var uid;
>>
>> // Delete button
>> $('a.delete-button').click(**function() {
>> uid = $(this).attr('rel');
>> });
>>
>> // Delete function
>> $('#delete-modal').bind('show'**, function () {
>> $('.modal-body').empty().html(**"<p>Please confirm
>> removal of user <strong><i>" + uid + "</i></strong> by clicking the
>> <strong>Delete</strong> button</p>");
>> $('#delete').show();
>> $('i#uid').empty().html(uid);
>> $('a#delete').click(function()**{
>> $.post("/admin/delete/user/" + uid + "/",
>> {"csrfmiddlewaretoken": "{{ csrf_token }}"},
>> function(data){
>> console.log("Post " + reload);
>> $('.modal-body').empty().html(**'<p>' +
>> data + '</p>');
>> $('tr#' + uid).remove();
>> reload = true;
>> })
>> .error(function() {
>> $('.modal-body').empty().html(**"<div class=\"alert alert-error\"><h4
>> class=\"alert-heading\">**Received an error from server!</h4><br/>Please
>> try again later.</div>"); })
>> .complete(function() {
>> $('a#delete').hide();
>> });
>> return false;
>> })
>> });
>> $('a#cancel').click(function()**{
>> $('#delete-modal').modal('**hide');
>> });
>> });
>>
>> This is my example, does someone has an idea?
>>
>> Thanks!
>>
>