我在一个有输入元素的模板中有一个HTML标记。我通过Ajax调用加载它,并使用jQuery的$(selector).html(response)
。
基本上它是一个从模板加载的弹出框。加载弹出框后,我想将焦点设置在输入框上。我写了这段代码:
在现有HTML中附加内容后 $("#prescribe-input").focus()
但它不起作用。我也尝试用传统的javascript方式进行document.getElementById("prescribe-input").focus()
两者都不起作用。出于测试目的,我尝试在应用程序的Index.html中创建示例输入框并设置焦点。它完美地运作。问题是当我使用$().html()
从模板加载html时,它不起作用。
有什么方法可以正确地聚焦它?
我知道这里的代码非常少,但我相信问题是自我解释的。
答案 0 :(得分:1)
您应该在回调函数中执行此操作:
$(selector).html(response, function(){
$("#prescribe-input").focus();
})
答案 1 :(得分:1)
如果您使用jquery
,则可以对动态生成的元素使用.on()
$("#prescribe-input").on( "focus", function() {
//do what ever you want
});