我有一個textarea,它有keyup
事件來顯示渲染輸入的預覽。但是,我想在元素加載後立即顯示相同的預覽。「onload」事件的名稱是什麼?
$('textarea[name="ay[description]"]').on('keyup', function(e){
最簡單的話題是在聲明結尾發起.trigger('keyup')
。但是,不存在如下的事件,例如load
,onload
或ready
,我錯過了不同的名稱?
我有一個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