logo
27.04.2018 16:35
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();

    
    	
     
    });
 });

Co se právě děje na Webtrhu?

27.04.2018 16:58
2
dbclick event neexistuje(jedine ak cez nejaky plugin). musis pouzit timer a detekovat dve kliknutia v kratkom casovom intervale.
27.04.2018 17:05
3
Původně odeslal node
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 ----------

Původně odeslal node
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(); 
  
  
  
  
  
});