gpt4 book ai didi

javascript - 试图阻止 Javascript 在页面加载时运行

转载 作者:搜寻专家 更新时间:2023-11-01 05:04:45 27 4
gpt4 key购买 nike

我正在尝试将 onChange 事件处理程序添加到我的 html 页面的两个元素。遗憾的是,该事件在页面加载时触发,这会导致下游问题。

$("#Division").on('click', onChangeFilter());
$("#Program").change(onChangeFilter());

function onChangeFilter() {
alert("Fired to soon....");
};

用于测试的关联 HTML 如下所示

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test</title>
</head>
<body>
<div id="DivisionSelection">
<select id="Division" data-filterprogramcontrol="Program">
<option value="-1">Select Division</option>
<option value="1">Item 1</option>
<option value="2">Item 2</option>
<option value="3">Item 3</option>
</select>
</div>
</body>
</html>

添加 .change 事件是否会导致“更改”并触发功能?我能找到的两个最近的帖子位于 herehere但我觉得他们的问题更透明。在 jQuery API 中对我来说没有什么是显而易见的表明这种行为。我刚刚开始在我的类(class)作业中过渡到网络世界,也许我没有正确理解页面如何加载 DOM 的动态。我以为this页面有用但不确定准确度如何。预先感谢您的指导。

最佳答案

您需要在每次使用 onChangeFilter 后删除调用括号:

$("#Division").on('click', onChangeFilter);
// ^^
$("#Program").change(onChangeFilter);
// ^^

这会将函数视为任何其他(对象)值,将其作为参数传递给 .on().change() 供它们使用和用于触发事件时要调用的事件。

否则,带括号的函数首先被调用,其返回值被传递给.on().change(),类似于:

var result1 = onChangeFilter();
$("#Division").on('click', result1);

var result2 = onChangeFilter();
$("#Program").change(result2);

关于javascript - 试图阻止 Javascript 在页面加载时运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29404568/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com