javascript - jQuery 滚动仅在第一次选择后发生

标签 javascript php jquery mouseevent onchange

我的 jQuery 有一个奇怪的问题。我有一个元素,一旦选择了下拉选项,我想切换到该元素。奇怪的是,它仅在第一次更改后才会触发。第一次更改时它不会滚动到右侧元素,但此后的后续更改不会滚动到右侧元素!

为什么忽略第一个?也许我选择了错误的事件属性?我尝试过其他方法,例如 mouseleave() 但没有成功。我觉得我使用了正确的属性,因为我希望它在用户选择或更改下拉值时滚动。

如有任何帮助,我们将不胜感激。

请在下面找到我的代码:

home.php

  //SCROLL TO TRANSFER GUIDE ON click

      $("#major").on('change',function() {
        $('html, body').animate({
        scrollTop: $("#scrollHere").offset().top
      }, 1000);
      });

ma​​jor.php

<?php
session_start();
require 'db_connect_clearmaze.php';
?>

<body>

<h3 align="center" class="header whitetext">Choose Your Major</h3>

<?php
  $uni = trim($_GET['uni']);
  $_SESSION['uni'] = $uni;
  $cc = $_SESSION['cc'];
?>


<form align="center">
    <select id = "major" class="dropbtn" onmouseover="DropListMajor()"
  onmouseout="this.size=1;" onchange="loadTransferGuide(this.value,'<?php echo $uni; ?>','<?php echo $cc; ?>')">
    <?php
    echo '<option value=""> Select Your Major </option>';
        $query = $db -> query("SELECT major FROM majors WHERE university = '".$uni."';");
        while($row = $query -> fetch()){
            echo '<option value = "'.$row['major'].'">' ?>
            <?php echo $row['major'].'<br>' ?> <?php '</option>';
        }

     ?>

    </select>

</form>

</body>

最佳答案

change 事件处理程序 $("#major").on('change',function(){...} 是在另一个 内定义的更改 处理程序...

因此,在第一次更改时,第一个内联处理程序定义了第二个处理程序。

这就是为什么它在第一次更改时没有触发。

我猜是因为它符合所描述的行为......
还因为这个注释//SCROLL TO TRANSFER GUIDE ON click

;)

关于javascript - jQuery 滚动仅在第一次选择后发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44222520/

相关文章:

javascript - socket.io 未发送到客户端

javascript - 发送数据闪烁(1)设备

c# - 为什么我收到 NaN is not a valid value of Int32 错误?

javascript - JS : Catch network error and return default response data

javascript - Array.prototype.concat() 底层

java - 对于在 ADODB 中反序列化值的特殊情况,我如何将 PHP preg_split 移植到 Java?

php - HTML 复选框将 View 位置重置为页面的开头

php - 创建两个几乎相同的数组

javascript - jquery编辑动态生成的div内容

jquery - 将 id 数组绑定(bind)到事件处理程序