“onload”事件的名称是什么?

时间:2012-03-11 20:45:17

标签: jquery

我有一个有keyup事件的textarea来显示渲染输入的预览。但是,我希望在加载元素后立即显示相同的预览。

$('textarea[name="ay[description]"]').on('keyup', function(e){

最简单的是在声明结束时发起.trigger('keyup')。但是,是否有loadonloadready这样的事件,我错过了不同的名字?

4 个答案:

答案 0 :(得分:0)

onLoad事件被称为“加载”,但它仅针对某些对象/元素(iframe,窗口,文档)触发。

  

当load元素和所有子元素都有时,load事件被发送到元素   已完全装满。此事件可以发送到任何元素   与URL相关联:图像,脚本,框架,iframe和   窗口对象。

http://api.jquery.com/load-event/

答案 1 :(得分:0)

可以使用文档上的就绪事件。只需重构显示代码,这样您就可以在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'));
    });
});

答案 2 :(得分:0)

如果我理解正确,您希望在每个键盘后呈现预览,并且最初在页面加载完成后呈现。你这样做:

$(document).ready(render);
$('textarea[name="ay[description]"]')
.on('keyup', render);

var render = function() {
  // DO render stuff
}

答案 3 :(得分:0)

注意

OP指出,除非另有说明,否则并不总是需要命名空间事件。非常正确:

$(document).ready(function(){
    var $aydesc = $('textarea[name="ay[description]"]'),
        $goeshere = $('#goeshere');

    $aydesc.on('keyup.preview', function(e){
        $goeshere.text($(this).val());
    });

    $aydesc.trigger('keyup');
});

http://jsfiddle.net/r8Qvz/4/

我不一定建议你总是需要命名空间事件来实现这一点,所以我通过回答进行了更新。

如果您在该元素上有多个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');
});

http://jsfiddle.net/r8Qvz/3

我认为命名空间事件非常漂亮。

当然,你可以用非常好的方式做到这一点:

(已修复,之前无法正常工作。)

$(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);
});

http://jsfiddle.net/r8Qvz/5/

如果您有多个textarea,请告诉我,我会更新它以管理该案例。如果你这样做,你需要一些关于应该显示textarea值的逻辑,除非每个textarea都拥有它自己的显示目标。