Javascript焦点不适用于动态加载的输入框

时间:2014-07-01 11:28:58

标签: javascript jquery html ajax

我在一个有输入元素的模板中有一个HTML标记。我通过Ajax调用加载它,并使用jQuery的$(selector).html(response)

放入现有的html

基本上它是一个从模板加载的弹出框。加载弹出框后,我想将焦点设置在输入框上。我写了这段代码:

在现有HTML中附加内容后

$("#prescribe-input").focus()但它不起作用。我也尝试用传统的javascript方式进行document.getElementById("prescribe-input").focus()

两者都不起作用。出于测试目的,我尝试在应用程序的Index.html中创建示例输入框并设置焦点。它完美地运作。问题是当我使用$().html()从模板加载html时,它不起作用。

有什么方法可以正确地聚焦它?

我知道这里的代码非常少,但我相信问题是自我解释的。

2 个答案:

答案 0 :(得分:1)

您应该在回调函数中执行此操作:

$(selector).html(response, function(){
   $("#prescribe-input").focus();
})

答案 1 :(得分:1)

如果您使用jquery,则可以对动态生成的元素使用.on()

$("#prescribe-input").on( "focus", function() {
  //do what ever you want
});