gpt4 book ai didi

jquery - 与 jQuery 的简单绑定(bind)

转载 作者:行者123 更新时间:2023-12-01 06:19:53 25 4
gpt4 key购买 nike

我正在尝试重新熟悉 jQuery,但入门时遇到困难。

在下面的代码中,我想说“当 DOM 准备就绪时,将警报绑定(bind)到“choice”div 的更改事件,该 div 实际上是表单上的一个选择元素。当我通过警报立即显示,并且当我做出新选择时不显示。

代码如下:

$(document).ready(doBind());

function doBind() {
$('#choice').change(myAlert('Choice has been changed!'));
}

function myAlert($msg) {
alert($msg);
}

最佳答案

您需要区分函数引用和调用(调用)。当您关联事件处理程序或回调时,您需要一个函数引用,然后在适当的时间调用该函数。一旦传递参数并将 (..) (或空 ())添加到函数引用中,就会调用。如果您在绑定(bind)期间执行此操作,则该函数将在绑定(bind)时被调用,并且该函数的输出将被绑定(bind),而不是绑定(bind)引用(这将允许通常预期的稍后调用)。

您应该按如下方式更改两个绑定(bind):

   $(document).ready(doBind); //Now a reference to that function

function doBind() {
$('#choice').change(function() { myAlert('Choice has been changed!');});
//New anonymous function reference which allows for arguments and is conventionally used
}

function myAlert($msg) {
alert($msg);
}

几个简单的示例来突出语法差异和 () 的使用。

下面的函数将采用函数引用。作为参数,然后在内部执行它(处理程序和回调的基本工作方式)。

functionWrapper = function(funk) {
//Do something else
funk()
}

现在流行的匿名函数声明后立即调用:函数通常会被写成function() {...}(),这会导致对新创建的函数的引用立即被调用提供的任何参数(在 JavaScript 中用于强制作用域)。任何一种情况下的参数都可以用作函数中的参数,因此调用 (..) 中的任何内容都会映射到 function(..) 中声明的内容但关注引用与调用是您问题的主要问题。

关于jquery - 与 jQuery 的简单绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12657836/

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