【问题标题】:jQuery "focus" works in one instance but not in othersjQuery“焦点”在一个实例中有效,但在其他实例中无效
【发布时间】:2016-05-10 05:54:25
【问题描述】:

前段时间我用jQuery方法focus写了一些代码;它当时有效,现在仍然有效。但是现在我尝试在同一个应用程序中使用相同的方法编写一些几乎相同的代码,但它没有做任何事情。事实上,没有新编写的方法使用。更奇怪的是,它似乎也不适用于 jsfiddle:

https://jsfiddle.net/3jmmL7ya/1/

<div id="click">CLICK ME</div><br>
<input id="focus" name="focus"></input>

<script type="text/javascript">
  $("#click").click(function() {
    $(':input[name="focus"]').focus();
  });

  $("#click").click(function() {
    $("#focus").focus();
  });
</script>

这可能是无关的,但我认为值得一提的是我最近在使用Rails方法respond_to do |format|时遇到了类似的问题。它在过去有效,我的旧代码仍然有效,但我编写的新代码导致“未知格式”错误。更多详情here.

我正在使用 jQuery 1.10.0 和 Rails 4.0.10。

我要么在做一些非常愚蠢的事情,要么正在发生一些非常奇怪的事情。

更新

好的,我可以使用它了

  $("#click").click(function() {
    $("#focus").focus();
  });

但是当我在js控制台输入$("#focus").focus();时,输入被选中了,但是什么也没发生。这是预期的行为吗?

【问题讨论】:

  • @Satpal 我很困惑......你的小提琴有效,但我用完全相同的代码制作了另一个,而那个没有。这个小提琴对你有用吗? jsfiddle.net/3jmmL7ya/15
  • 添加 jQuery 库,它会工作,你还没有在你的小提琴中添加库
  • @Satpal Oh........那一定是新要求。
  • 您的 jQuery 库是否已加载到您的项目中?

标签: javascript jquery


【解决方案1】:

这是因为您使用 id 选择器来连接事件。

根据定义,ID 应该是唯一的。当你使用 id 时,jQuery 会自动选择它找到的第一个匹配元素。要解决这个问题,只需在元素上添加一个类并使用该选择器。

【讨论】:

  • 我确保 id 是唯一的。我还尝试添加类并使用这些名称,但也没有任何反应。
  • 那么你的 jsFiddle 不工作的原因是它不包含 jQuery。
  • 我很高兴 jsFiddle 问题得到了解决,但我的应用程序上的问题仍然存在。
猜你喜欢
  • 1970-01-01
  • 2018-03-25
  • 2013-10-24
  • 1970-01-01
  • 1970-01-01
  • 2012-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多