我正在使用原型js绑定这样的事件:
$('country').observe('change',function(e) { ... });
我怎样才能立即触发它?
在 jQuery 中,我会添加一个.triggerHandler('change')
. 原型中有类似的东西吗?
我正在使用原型js绑定这样的事件:
$('country').observe('change',function(e) { ... });
我怎样才能立即触发它?
在 jQuery 中,我会添加一个.triggerHandler('change')
. 原型中有类似的东西吗?
使用load
事件。像这样的东西:
// calls addListeners when the document loads
Event.observe(window, 'load', addListeners, false);
function addListeners() {
// called onLoad
fireOnce();
// observer for the country dropdown
$('country').observe('change', function(event) {
fireOnChange();
});
}
function fireOnce() {
// do something
}
function fireOnChange() {
// do something
}
当文件加载时,fireOnce()
将执行。我一直使用这种技术。
尝试这个:
var handler = function(e) {...};
$("country").observe("change",handler);
handler();
或者(可读性较差,避免临时变量):
$("country").observe("change",(function(e) { ... return arguments.callee;})());
但是,在这两种情况下,您都无法按this
预期使用。此解决方案更适合更通用的回调,例如 forsetInterval
...如果您知道它存在,并且您知道您不是在等待页面加载或等待脚本加载,为什么不只是:
(function (el) {
if (!el) { return; }
doSomething(el);
}(document.getElementById("country")));