首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从选项锚定在Chrome中不起作用

从选项锚定在Chrome中不起作用
EN

Stack Overflow用户
提问于 2020-05-13 00:30:12
回答 2查看 18关注 0票数 0

这段代码可以在Firefox中运行,但不能在Chrome中运行。请帮帮我。点击选项必须发送到相应的DIV。

HTML:

代码语言:javascript
复制
<html>

<style>
div {
  margin-top: 200px;
  margin-bottom: 200px;
}

</style>
<body>

 <form >

    <select name="myselect" id="myselect">

    <option value="#year1">anchor-1</option>
    <option value="#year2">anchor-2</option>
    <option value="#year3">anchor-3</option>
    <option value="#year4">anchor-4</option>
    <option value="#year5">anchor-5</option>

    </select>

 </form>

  <div id = year1>YEAR 1</div>
  <div id = year2>YEAR 2</div>
  <div id = year3>YEAR 3</div>
  <div id = year4>YEAR 4</div>
  <div id = year5>YEAR 5</div>

</body>
</html>

JQUERY:

代码语言:javascript
复制
$(function () {

        $("#myselect").on("click","option", function (event) {
        event.preventDefault();
        var id  = $(this).attr('value');
        var   top = $(id).offset().top;
        $('html,body').animate({scrollTop: top - 120}, 500);
    });

    });

在jsfiddle上尝试一下:

https://jsfiddle.net/zutkh4o1/3/

EN

回答 2

Stack Overflow用户

发布于 2020-05-13 00:47:14

您可能希望方法为"change",而不是单击选项本身:

代码语言:javascript
复制
$(function () {
    $("#myselect").change(function (event) {
        event.preventDefault();
        var id  = $(this).val();
        var top = $(id).offset().top;

        $('html,body').animate({scrollTop: top - 120}, 500);
    });
});

这个div id需要双引号:

代码语言:javascript
复制
<div id="year1">YEAR 1</div>
<div id="year2">YEAR 2</div>
<div id="year3">YEAR 3</div>
<div id="year4">YEAR 4</div>
<div id="year5">YEAR 5</div>

最后,select的每个子元素的值通常如下所示:

代码语言:javascript
复制
 $(this).val();

就是这样!

票数 0
EN

Stack Overflow用户

发布于 2020-05-13 00:58:28

您不需要.on()中的第二个参数-它不是动态加载的,所以它没有什么特殊之处:

代码语言:javascript
复制
$("#myselect").on("change", function(event) {
  event.preventDefault();
  var id = $(this).val();
  var top = $(id).offset().top;
  $('html,body').animate({
    scrollTop: top - 120 + "px"
  }, 500);
});
代码语言:javascript
复制
div {
  margin-top: 200px;
  margin-bottom: 200px;
}
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form>
  <select name="myselect" id="myselect">
    <option value="#year1">anchor-1</option>
    <option value="#year2">anchor-2</option>
    <option value="#year3">anchor-3</option>
    <option value="#year4">anchor-4</option>
    <option value="#year5">anchor-5</option>
  </select>
</form>
<div id=year1>YEAR 1</div>
<div id=year2>YEAR 2</div>
<div id=year3>YEAR 3</div>
<div id=year4>YEAR 4</div>
<div id=year5>YEAR 5</div>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61756913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档