sql >> Database >  >> RDS >> Mysql

Hoe dien je alleen een klikgebeurtenis (div) in bij gebruik van de jQuery live-functie?

Je zult je ajax-oproepen moeten debouncen, de gemakkelijkste manier is om een ​​doOnce te doen

var doOnce = 1;
$(document).ready(function(){
    $(".box_content").live('click',function(e){                                    
        var element = $(this);
        var id = element.attr("id");
        var mem_email = $("#to_mem").val();
        var mem_firstName = $("#to_memfirstName").val();
        var happening_id = $("#happening_id<?php echo $id; ?>").val();
        var info = "id=" + id + '&mem_email=' + mem_email + '&mem_firstName=' + mem_firstName + '&happening_id=' + happening_id;            
        if(doOnce){
        doOnce--;
        $.ajax({
            type: "POST",
            url: "/happening_getMem_linkUP.php",
            data: info,
            cache: false,
            success: function(html){
                $("#now_from_linkup<?php echo $id; ?>").html(mem_firstName);
                doOnce++;
            }
        });
        }
        return false;
    });
}); 

doOnce begint waar, dus de ajax wordt aangeroepen en doOnce wordt false gemaakt door de ajax-aanroep uit te schakelen, en wanneer de ajax succes retourneert, de doOnce wordt teruggezet naar waar, zodat het opnieuw kan worden uitgevoerd.

U kunt ook de Ben Alman's Throttle &Debounce-plug-in gebruiken




  1. Hoe CSV-bestandsgegevens importeren in een PostgreSQL-tabel?

  2. INSERT INTO ... SELECT zonder alle kolommen te detailleren

  3. stel nieuwe waarde in voor ft_min_word_len FULLTEXT in mysql

  4. Voorbeeld filterhaak om item met gerelateerd veld bij te werken