如何在页面加载时关注特定的div类?

时间:2018-01-18 20:22:00

标签: jquery html

我想在用户操作的特定.focus();上设置<div>。此操作将重新加载页面,重新加载后我想设置焦点<div>

注意: 我可以添加HTML,但想到屏幕截图会更容易。

以下是我的HTML结构: enter image description here

我试过以下但没有一个有效:

    //option - 1
    $(".cart-panel .pickup-delivery-time .cart-msg").focus();
    //option - 2
    $(".pickup-delivery-time .later").find(".cart-msg").focus();
    //option - 3
    window.location.hash = '.cart-msg';

完整代码:

$(document).on("click", "#map-delivery-addresses button", function() {
  $.publish('delivery_address_selected', { address: this });

  if (!$(".cart-msg").is(":focus")) {
    $(".cart-panel .pickup-delivery-time .cart-msg").focus();
  }

});

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

jQuery focus与Javascript focus不同。前者发射一个事件,但后者将该元素置于焦点。

document.getElementById('second').focus()
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
  <input id="first" placeholder="First"></input>
  <input id="second" placeholder="Second"></input>
  <input id="third" placeholder="Third"></input>
</body>
</html>

此代码适用于输入,但是一旦div聚焦,您期望的行为是什么?它可能无法察觉。

答案 1 :(得分:0)

您想要先等待文档准备就绪:

$(document).ready(function()
    {
         jQuery("div#name").focus();
    });

它不会100%有效,但99.9%可能已经足够好了。有些事情会发生,会引起人们的注意力,而你却无能为力。

如果您有复杂的用户界面,则希望更好地将focus()调用集成到该环境中。