由jQuery$.get(..)加载的Focus元素
Focus element loaded by jQuery $.get(...)
我正在加载一个html片段,将其插入某个元素之后,并希望使用类.focus
集中输入字段。此类可能有多个元素。与load(...)
类似的代码也能工作。
var item = $(this).closest(".something");
$.get(
url,
function(data) {
item.after(data);
$(data).find(".focus").focus(); /* everything works except this line */
}
);
加载的html:的相关部分
<input type="text" class="focus" value="" name="email"/>
看起来要聚焦的元素是(在调试器中)找到的,但它没有得到焦点。知道怎么了吗?
item.after(data)
将data
解析为一组DOM元素,并将它们放入文档中。
$(data)
然后将data
解析为另一个DOM元素集,这些元素永远不会显示。
你想要
$(data).insertAfter(item).find(".focus").focus();
这是因为data
在DOM中是而不是。
试试这个:
var item = $(this).closest(".something");
$.get(
url,
function(data) {
var $data = $(data);
item.after($data);
$data.find(".focus").focus(); /* everything works except this line */
//or you can do: $(".focus", $data).focus();
}
);
Try,
item.next().find(".focus").focus();
尝试使用item.next().find('.focus').focus()
。在Ajax回调中,data
不是jQuery对象,而是一个HTML字符串;调用item.after()
会使jQuery从HTML创建DOM节点,但它们不会链接到data
变量。
这是因为您没有对添加到dom中的元素调用focus()
。
试试这个。
var item = $(this).closest(".something");
$.get(
url,
function(data) {
item.after(data);
item.nextAll(".focus").focus(); /* everything works except this line */
}
);
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 如何在生成下载文件时显示加载动画
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 无法在通过jQuery的ajax加载的页面中执行javascript
- Emberjs应用程序加载在除Index之外的所有路由上
- 在chrome.tabs.onCreated之后加载HTML页面
- 单击F5时如何停止页面加载
- HTML5音频加载和播放获胜'我不能在iPad上工作
- 跟踪在页面加载时应用内联样式的JavaScript
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- jQuery Lazy加载动画滚动
- Html页面上的多个Base64图像和平滑加载
- 如何创建带有插槽的vue js组件预加载程序
- Webpack/Rect:遵循egghead.io教程,但出现错误:您可能需要一个合适的加载程序来处理此文件类型
- 如何使该数据在所有元素中加载
- Chrome扩展没有't在重新加载之前考虑期权价值
- 使用javascript在Flash中加载外部图像
- Ajax文件加载和<输入>文件加载
- 使用javascript函数在页面初始化后加载jquery
- 由jQuery$.get(..)加载的Focus元素