1

私はここにフィドルを持っています - http://jsfiddle.net/hhimanshu/SDr3F/2/

  • 左ペインはすでに利用可能です
  • 「検索」をクリックすると、入力ボックスにフォーカスが表示される必要があります(当面のアラート)

問題

  • 左ペイン設定でページをロードすると、jQuery がイベントを発生させ、「検索は無効です」をクリックします。

ここで何が間違っているのかを理解するのを手伝ってください

アップデート

  • アラートは表示されますが、フォーカスに失敗します。これが私の最新の jQuery です
// loading search page
$(function(){
  $("#search").click(function(){
      $('#feature').load('templates/search.html');
      $('#search-input').focus();
      // alert("hi");
  });
});  

そしてsearch.html_

<input id="search-input" type="text" class="input-medium search-query span4 youtube-search-box">

どうすればそれに集中できますか?

4

6 に答える 6

2

以下のコードは、ページロード時に起動しています。これは、コードをそのように記述したためです

$(function(){  // This tells it to run when dom is ready
    alert('hi')    //  Since this is inside the ready function it runs when dom is ready
});

必要なのは、dom の検索ボタン要素を準備して、クリック イベント ハンドラーをアタッチすることです。ID が「search」の要素をクリックすると、.click() 関数内にあるコードが起動するようになりました。

$(function(){  
    $('#search').click(function(){  // this tells it to run whenever element with ID "search" is clicked
          alert('hi');
     });
});

ここに動作するフィドルがありますhttp://jsfiddle.net/SDr3F/10/

于 2012-06-22T21:00:06.703 に答える
1

これでうまくいくはずです:

$('#search').click(function(){
    alert('hi')
    //$('#search-input').focus();
});
于 2012-06-22T21:00:53.153 に答える
0

基本的に、あなたのコードは現在、すぐに実行するように指示しているだけです。

   $(function(){
     alert('hi')
//$('#search-input').focus();

});

以下を追加する必要があります。

  $("#search").on("click", function(){
     alert('hi')
  });
于 2012-06-22T21:02:14.790 に答える
0

問題は、ボタン内に DIV があることです。

このフィドルを試してください

http://jsfiddle.net/SDr3F/9/

于 2012-06-22T21:03:43.230 に答える
0

ボタンのクリック イベントの一部として関数をアタッチする必要があります。だから、このようなもの:

$("#search").click(function(){
     alert('hi')
     //$('#search-input').focus();
});

http://jsfiddle.net/SDr3F/7/

于 2012-06-22T21:00:29.667 に答える
0

$(document).ready(fn)、DOM がロードされたときにその中のすべてが実行されることを意味します。

検索ボタンのクリックを検出するに$("#search").click(fn)は、document.ready fn 内で使用します。

于 2012-06-22T21:01:02.300 に答える