2016-04-28 11 views
5

Öncesi hikayesi: Ben sonuç başlayacak giriş alanına benim website.If kullanıcı başlangıç ​​yazarak arama yapmak Algolia arama kullanıyorum ekranda görünenbir düğmeye tıklayarak ateş nasıl olursa giriş kutusuna kullanıcı tip

Bitiş hedefi: filtreleri (geçiş işlevselliği) varsayılan olarak kapatın.

Sorunlar: Kullanıcı girişe yazmaya başladığında, url değişikliği ve filtreler açık kalır.

  • Kullanıcı yazmayı bitirdikten sonra konsola kodu uygularsam, düğmeyi kapattığımı görebilirim.
  • jQuery kodlarının belgesini uygularsam ve yazarken filtreler kapalı kalır, ancak kullanıcı yazmayı durdurduktan sonra tekrar filtreler açılır.
  • Yazarak bitirdikten sonra (giriş netleme), filtreler tekrar açılır.

Benim yaklaşım:

  • İlk

    $("input#dropdown_search").on('input',function(e){ 
        $("b- utton.button.filters__button").click();  
    }); 
    
  • İkinci

    $('input#dropdown_search').keyup(function() { 
        $("button.button.filters__button").click(); 
    }); 
    
  • Üçüncü

    $('input#dropdown_search').on('inputchange', function() { 
        $("button.button.filters__button").click(); 
    }); 
    
  • $("input#dropdown_search").on('change keyup paste', function() { 
        ApplyFilter(); 
    }); 
    
    function ApplyFilter() { 
        $("button.button.filters__button").click(); 
    } 
    

    Dördüncü onlar Kullanıcı yazmayı bırakır sonra bile gizli filtreyi tutmak uç hedefe ulaşmak değil gibi görünüyor.

Lütfen yardım edebilir misiniz?

+0

Kodunuzun bazı koyabilirsiniz ikinci giriş değerini değiştirmek için ? –

+0

'.click();' '.click' ile eklediğiniz diğer olay dinleyicilerini tetikler, güvenlik nedenleriyle yerel bir tuşa basmayı simüle etmez (kullanıcı bilgisi olmadan formlar gönderebilirsiniz). –

+0

@Sergiu Paraschiv Click olayı iyi çalışıyor çünkü "button.button.filters__button" hedefliyorum sorun ben burada gizlerim ama ben bir kez gösterdiğinde tekrar gösterir. Başka bir yere tıklarsam, tıklama işlevi tekrar tetiklenir – John

cevap

0

bu deneyin:

var timer; 
$("input#dropdown_search").on('change keyup', function() { 
    clearInterval(timer); 
    timer = setInterval(function() { 
     ApplyFilter(); 
    }, 1500); 
}); 
0

Sen tetiklemek için trigger kullanabilirsiniz click

$("#dropdown_search").on('change keyup paste',function(event){ 
$(".buttonclass").trigger('click'); //trigger .buttonclass button on trigger of events 
}) 
$(".buttonclass").on('click',function(event){ 
alert("I am clicked") 
}) 
0 Yangın fonksiyonu hemen sonra butona ilk girişte

Example jsFiddle

0

tipi,


 
    
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
</head> 
 
<body> 
 

 
<input type=text id=dropdown_search> 
 
    <input type=text id=dropdown_search2> 
 

 
    <button id=target onclick="be()"> 
 

 
<script> 
 
    
 
    onload = function() { 
 

 
     var t = document.getElementById('dropdown_search'); 
 
     t.oninput = function(){ 
 
     
 
     document.getElementById("target").click(); 
 
      
 
     }; 
 
     t.onpropertychange = t.oninput; // for IE8 
 
     t.onchange = t.oninput; 
 

 
     }; 
 

 
function be() { 
 
var t = document.getElementById('dropdown_search').value; 
 
document.getElementById('dropdown_search2').value=t;} 
 
    </script> 
 
    
 
    </body></html>

İlgili konular