1

我有一个小提琴:http: //jsfiddle.net/SDr3F/10/

目前:

onclick,它会发出警报

alert('hi')  

必需的:

onclick,它会加载一个search.html带有搜索文本框和focus文本框的

搜索.html

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

我如何设置焦点?

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

问题

  • 它加载页面但不关注文本框,我该如何解决这个问题?
4

2 回答 2

5

在您的示例中,您在发出 Ajax 请求后立即关注元素,而不是在请求成功完成时。因此,您尝试关注尚未加载的元素。

您应该添加完整的处理程序。以下应该有效:

$("#search").click(function() {
    $("#feature").load("templates/search.html", function() {
        $("#search-input").focus();
    });
});​
于 2012-06-22T21:45:23.780 回答
2

您需要一个回调,以便它在尝试设置焦点之前知道页面内容已完全加载。

于 2012-06-22T21:48:07.110 回答