Rails:用Ajax渲染部分后,用JS操纵部分

时间:2012-08-13 18:38:02

标签: javascript ruby-on-rails ajax

在我的应用中,用户点击一个按钮,通过ajax显示文本字段。

我希望在文本字段出现后关注它。

在我的js.erb文件中,

$("#my-textfield").focus()不起作用,但在控制台中工作正常。我也尝试用setTimeout无效。

当我document.getElementById('my-textfield').focus();时,我得到“无法专注于空”。

在通过ajax加载部分后,我是否需要以某种方式“重新加载”DOM?

2 个答案:

答案 0 :(得分:0)

您可以使用.on()收听事件DOMNodeInserted。它还没有被广泛支持,我从来没有使用它,但看起来它可能适用于你想要做的事情。

答案 1 :(得分:0)

我还没有真正做到这一点,但你可以试试

$function() {
  $("#my-textfield").load(function() {
    $(this).focus();
  });
});

确保首先加载。