Javascript jQuery滚动仅在第一次选择之后发生
我的jQuery有一个奇怪的问题。我有一个元素,一旦选择了下拉选项,我就想切换到该元素。奇怪的是,它只有在第一次更改后才会触发。它不会在第一次更改时滚动到正确的元素,而是在随后的更改中滚动到正确的元素 为什么它忽略了第一个呢?可能我选择了错误的事件属性?我试过其他的方法,比如mouseleave(),但没有成功。我觉得我使用了right属性,因为我希望它在用户选择或更改下拉值时滚动 任何帮助都将不胜感激 请在下面找到我的代码: home.phpJavascript jQuery滚动仅在第一次选择之后发生,javascript,php,jquery,mouseevent,onchange,Javascript,Php,Jquery,Mouseevent,Onchange,我的jQuery有一个奇怪的问题。我有一个元素,一旦选择了下拉选项,我就想切换到该元素。奇怪的是,它只有在第一次更改后才会触发。它不会在第一次更改时滚动到正确的元素,而是在随后的更改中滚动到正确的元素 为什么它忽略了第一个呢?可能我选择了错误的事件属性?我试过其他的方法,比如mouseleave(),但没有成功。我觉得我使用了right属性,因为我希望它在用户选择或更改下拉值时滚动 任何帮助都将不胜感激 请在下面找到我的代码: home.php //SCROLL TO TRANSFER GU
//SCROLL TO TRANSFER GUIDE ON click
$("#major").on('change',function() {
$('html, body').animate({
scrollTop: $("#scrollHere").offset().top
}, 1000);
});
<?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>
major.php
//SCROLL TO TRANSFER GUIDE ON click
$("#major").on('change',function() {
$('html, body').animate({
scrollTop: $("#scrollHere").offset().top
}, 1000);
});
<?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',function(){…}
中定义了另一个更改
处理程序
所以在第一次更改中,第一个内联处理程序定义了第二个处理程序
这就是为什么它没有在第一次改变时开火
我猜是因为它符合所描述的行为…但也正是因为有了这条评论,
//单击可滚动至转账指南
)是否有可能$(“#主要”).on('change',function()
在loadTransferGuide(…)
中?@LouySpatriceCebeset提出了很好的建议,但不幸的是对我不起作用:(有一秒钟我以为你有什么想法!还有其他想法吗?@Louyspatricebesette刚刚在文档的其他地方尝试了该函数的另一种定位,效果非常好!非常感谢!!!