“onload”事件的名称是什么?
我有一个textarea,它有keyup
事件来显示渲染输入的预览。但是,我想在元素加载后立即显示相同的预览。“onload”事件的名称是什么?
$('textarea[name="ay[description]"]').on('keyup', function(e){
最简单的话题是在声明结尾发起.trigger('keyup')
。但是,不存在如下的事件,例如load
,onload
或ready
,我错过了不同的名称?
onLoad事件被称为“加载”,但它仅针对特定对象/元素(iframe,窗口,文档)触发。
加载事件发送到一个元素,当它和所有的子元素 已完全加载。此事件可以发送到与URL相关联的任何元素 :图像,脚本,框架,iframe和窗口对象。
在文档的ready事件都可以使用。只需重构显示代码,以便您可以在Keyup处理程序中和文档准备就绪时调用它们。根据需要将其扩展到其他事件(如“更改”,如果需要处理复制/粘贴)。
function previewText(input, display)
{
// do the preview of the input element in the display div
}
$(function() {
previewText($('textarea[name="ay[description]"]'),$('#ay-preview'));
$('textarea[name="ay[description]"]').on('keyup change',function() {
previewText($(this),$('#ay-preview'));
});
});
如果我理解正确的话要渲染预览每个KEYUP后,最初当页面加载完毕。您面包车做到这一点:
$(document).ready(render);
$('textarea[name="ay[description]"]')
.on('keyup', render);
var render = function() {
// DO render stuff
}
注意
的OP指出,除非另有说明,一个命名空间中的事件并不总是必要的。非常真实:
我并不建议你总是需要命名空间的事件做做到这一点,所以我的答案更新。
我认为,如果你有一个元素上多keyup
处理程序,你可能会发现一个namespaced event有用:
$(document).ready(function(){
var $aydesc = $('textarea[name="ay[description]"]'),
$goeshere = $('#goeshere');
$aydesc.on('keyup.preview', function(e){
$goeshere.text($(this).val());
});
$aydesc.trigger('keyup.preview');
});
命名空间的事件是非常漂亮,我想。
当然,你可以做到这一点的非巧妙的方法:
(该问题已解决,这是以前没有工作。)
$(document).ready(function(){
var $aydesc = $('textarea[name="ay[description]"]'),
$goeshere = $('#goeshere');
var preview = function(e){
$goeshere.text($(this).val());
};
$aydesc.on('keyup', preview);
preview.call($aydesc);
});
如果你有多个textarea
s,让我知道,我会更新它来管理这种情况。如果这样做,则需要一些逻辑来确定应该显示哪个textarea
值,除非每个textarea
都有它自己的显示目标。
您可以立即将'.trigger'事件附加到'keyup'事件的声明。此外,您使用的变量的命名约定与javascript无关,特别是'$'前缀。 – Gajus 2012-03-11 20:59:50
嗯...嗯,那当然是真的,除了我指出的是,你可以给一个特定的事件处理程序的名称;谁知道你是否有其他人,只想专门解雇那一个。我想如果你发现有用的话(比如你说的''.trigger('keyup')'会在很多情况下工作),它会有所不同,但是我的示范工作(请告诉别人)。另外,我使用'$'来表示jQuery对象的变量。我不会把它称为“外星人”,无论如何,这是无关紧要的,但我已经看到它被我尊重的其他人完成,这是我从中获得的。 – 2012-03-11 21:05:24
可以使用文档上的ready事件。只需重构显示代码,以便您可以在Keyup处理程序中和文档准备就绪时调用它们。 – tvanfosson 2012-03-11 20:48:35
这里很难理解这里提出的问题。 – gdoron 2012-03-11 20:49:00