Workshop FORPSI Cloud rozptýlí vaše obavy z použití cloudu
Zobrazují se odpovědi 1 až 3 z 3

Jquery - nereaguje mi prevent default na double click událost.

  1. Ahoj všem,

    tady je menu, a vytvořil jsem script na otevírání a zavírání druhého menu... , které se musí zatím jen při 480px rovnat pod menu první. Po kliknutí mi to funguje dobře menu se otevře spodní se zarovná pod horní... , ale nefunguje dblclick event...nejde vypnout....nevěděl byste někdo jak vypnout doubleclick event ?

    Zde je web kde si můžete akci s menu vyzkoušet: http://domia.tode.cz

    A zde je kod:

    Kód:
    jQuery(document).ready(function() {	
    
    
    jQuery(".navbar-toggler").click(function(){
        jQuery(".menu-top").toggle(200);
        
    }); 
    
        jQuery('.navbar-toggler').on('dblclick',function(e){
         
           jQuery(this).off(e);
       
        	/*  Prevents default behaviour  */
        	e.preventDefault();
         
        	/*  Prevents event bubbling  */
        	e.stopPropagation();
    
        
        	
         
        });
     });

  2. Co se právě děje na Webtrhu?
  3. dbclick event neexistuje(jedine ak cez nejaky plugin). musis pouzit timer a detekovat dve kliknutia v kratkom casovom intervale.

  4. Citace Původně odeslal node Zobrazit příspěvek
    dbclick event neexistuje(jedine ak cez nejaky plugin). musis pouzit timer a detekovat dve kliknutia v kratkom casovom intervale.
    Díky našel jsem tohle a funguje to....

    jQuery plugin to allow single and double click handlers on an element · GitHub

    ---------- Příspěvek doplněn 27.04.2018 v 17:16 ----------

    Citace Původně odeslal node Zobrazit příspěvek
    dbclick event neexistuje(jedine ak cez nejaky plugin). musis pouzit timer a detekovat dve kliknutia v kratkom casovom intervale.

    Tak jsem to tam dal, alert se na dvojklik chytí... a nejde to vypnout...., ale je tam dvojklik..jak to teď vypnout ?

    Kód:
    jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
      return this.each(function(){
        var clicks = 0, self = this;
        jQuery(this).click(function(event){
          clicks++;
          if (clicks == 1) {
            setTimeout(function(){
              if(clicks == 1) {
                single_click_callback.call(self, event);
              } else {
                double_click_callback.call(self, event);
              }
              clicks = 0;
            }, timeout || 300);
          }
        });
      });
    };
    jQuery(".navbar-toggler").single_double_click(function (e) {
    
    }, function (e) {
        
        jQuery(this).off(e);
       
        	/*  Prevents default behaviour  */
      	e.preventDefault();
         
        	/*  Prevents event bubbling  */
      	e.stopPropagation(); 
        
      
      
      
    });


    ---------- Příspěvek doplněn 27.04.2018 v 17:24 ----------

    I tohle funguje na double click, podívejte se co to teď dělá...nevěděl byste jak se toho zbavit ?

    Kód:
    document.addEventListener('dblclick', function(event) {
        alert("Double-click disabled!");
        event.preventDefault();
        event.stopPropagation();
      }, false //capturing phase!!
    );


    ---------- Příspěvek doplněn 28.04.2018 v 12:30 ----------

    Nakonec jsem to vymyslel takhle, nahoře je odkaz na stránku každý může vyzkoušet....

    Kód:
    jQuery(".navbar-toggler").click(function(){
        jQuery(".menu-top").toggle(200);
        
    }); 
    
    jQuery.fn.extend({
        disable: function(state) {
            return this.each(function() {
                this.disabled = state;
            });
        }
    });
    
    
    jQuery.fn.single_double_click = function(single_click_callback, double_click_callback, timeout) {
      return this.each(function(){
        var clicks = 0, self = this;
        jQuery(this).click(function(event){
          clicks++;
          if (clicks == 1) {
            setTimeout(function(){
              if(clicks == 1) {
                single_click_callback.call(self, event);
              } else {
                double_click_callback.call(self, event);
              }
              clicks = 0;
            }, timeout || 300);
          }
        });
      });
    };
    
    
    
    
    jQuery(".navbar-toggler").single_double_click(function (e) {
    
    }, function (e) {
        
        jQuery('.navbar-toggler').disable(true);
         jQuery(".menu-top").show(300);
         setTimeout('jQuery(".navbar-toggler").disable(false)', 1500);
       	/*  Prevents default behaviour  */
       if (jQuery(".navbar-toggler").hasClass("collapsed")) {
        jQuery(".menu-top").hide(0);   
          
          
       }
      
      
      
      
      
      
      
      
      
      	e.preventDefault();
         
        	/*  Prevents event bubbling  */
      	e.stopPropagation(); 
      
      
      
      
      
    });

Hostujeme u Server powered by TELE3