用jquery将函数注册到DOM
registering functions to DOM ready with jquery
说我添加到First.js:
$(document).ready(
function () {
dosomething A
});
function () {
dosomething C
});
});
和Second.js:
$(document).ready(
function () {
dosomething B
});
});
DOM准备好后将执行所有3个函数吗?
当我注册
时,会发生什么情况?First.js:
$(document).ready(
A = function () {
dosomething A
});
C = function () {
dosomething C
});
});
Second.js :
$(document).ready(
A = function () {
dosomething A
});
});
后一个将覆盖第一个?
TIA
您的第一个示例语法无效。它将导致javascript解释器抛出异常。你只需要传递一个函数给$(document).ready(fn)
。您可以在一个函数中包含多个函数调用,但是您只能将一个函数传递给.ready()
。
第二个例子也是一个语法错误——一个额外的});
。如果删除它,它将工作并执行该函数。
您在first.js
和second.js
中的第三个示例也是语法错误。您不能将任意javascript作为.ready()
的参数。它必须是一个语法正确的函数引用。
现在,您可能一直试图问您是否在示例中实际提供了合法语法,您传递给.ready(fn)
的所有函数将在文档准备好时执行。jQuery保存了所有传递的函数的数组,并在文档准备好时执行它们。如果使用多个函数多次调用.ready()
,则.ready()
的jQuery文档没有指定调用顺序,不过可以检查源代码并查看可能的顺序。
" DOM准备好后,是否会执行所有3个函数?"
是的。每次绑定要在DomReady执行的内容时,jQuery都会将该函数放入一个内部数组中,然后按照"插入"的顺序执行它们。
后一个将覆盖第一个?
是的,它会,除非你把var
放在定义之前。JavaScript将把A
放在窗口作用域中,所以下一个定义将覆盖第一个定义。
function() {
var A = 0; // this will only exist within the function
}
function() {
A = 1; // this will be added to the "global" scope (window).
}
后一个将覆盖第一个?
不,您可以为单个事件分配多个函数。
我假设你的语法错误是无意的。按照它们的编写方式,不执行任何代码。
是的,您可以多次绑定同一个事件而不会出现问题。
是,第二个代码将替换第一个代码设置的值
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 防止多次显示弹出窗口.Ajax添加结果已在DOM中注册
- 在元素添加到DOM之前,将事件注册到元素中
- 如何通过按 id 注册但未在任何 DOM 节点中引用来删除 dojo 小部件
- 从尚未注册到 DOM 的 jquery 对象中删除元素
- 如何在javascript中动态编写对象时注册DOM id
- 我想用github注册表替换DOM文本节点
- 如何为DOM元素注册事件处理程序
- 用jquery将函数注册到DOM
- 我可以通过'this'作为将事件侦听器注册到local-DOM子节点时的参数
- 如何用DOM注册HTML文本
- 如何有效地将DOM事件注册到特定的JavaScript对象实例
- 为什么动态创建的html没有在DOM中注册
- Javascript:在创建/附加到DOM时注册*每个* DOM元素
- 将现有事件注册到ajax加载的DOM