2017-11-05 8 views
0

動作しませんし、私はそれは、彼が(街の名前全体が入力されている場合)を入力当たると、彼が入力している都市への「リンク」のユーザーをしても、私にしたいです彼が結果バーをクリックすると、彼に連れて欲しい。KeyDownイベントは、私はjqueryのに検索コードを作っ

「ヒット・オン・オン」機能を使用しようとしたときに、代わりにすべてが機能するので、動作しません。

EDITED

$(document).ready(function(){ 
$.ajaxSetup({ cache: false }); 
$('#search_text').keyup(function(){ 
    $('#result1').html(''); 
    $('#state').val(''); 
    var searchField = $('#search_text').val(); 
    var expression = new RegExp(searchField, "i"); 
    $.getJSON('data.json', function(data) { 
    $.each(data, function(key, value){ 
    if (value.name.search(expression) != -1 || value.location.search(expression) != -1) 
    { 
    $('#result1').append('<li class="list-group-item "> <a href="'+value.link+'"> '+value.name+' | <span class="text-muted">'+value.location+'</span></li> </a>'); 
    } 
    $('#search_text').keydown(function(e) { 
      if (e.which === 13) { 
      window.location.href = value.link; 
      } 
     }); 
    }); 
    }); 
}); 

$('#result1').on('click', 'li', function() { 
    var click_text = $(this).text().split('|'); 
    $('#search_text').val($.trim(click_text[0])); 
    $("#result1").html(''); 
}); 
}); 
+0

e.preventDefault(); –

+1

'console'にはどのようなエラーがありますか? –

+0

あなたの結果のクリックは、コードが正しくフォーマットされているかどうかを見ることができるので、document.readyの外にあります。 – mplungjan

答えて

0

を入力して今では私は私のJSONファイルを持っている最後の都市に私をリダイレクトし、代わりの都市イムに私をリダイレクトするには、KeyDownイベントのためのリスナーを持っていますgetJSONと.eachループの内部にある? これはまた、ループのたびに添付されます。ループの中に入れなければならない場合は、これを代わりに使用してください:

$( "#search_text")unbind( 'keydown')。keydown(...)

ループの外側に配置し、次に何が起こるかを確認してください。イベントが発生しているかどうかを確認するconsole.logメッセージもあります。

関連する問題