2013-04-02 74 views
0

我目前有一個程序,如果我更改左側的設置,它會自動更改右側。所以你有一個預覽你在做什麼。準備好作爲第二個eventType不起作用

文本將自動顯示在每個「keyup」上。所以,當你打字的時候,你會看到它預覽的樣子。

我目前打電話給我這樣的javascript函數。

「#chapter_form_number」是窗體輸入的ID。

$("#chapter_form_number").bind("mouseup" , {key: 'chapter_display_number'} , chapter_generate_num); 
$("#chapter_form_title").bind("keyup" , {key: 'chapter_display_title'} , generate_text); 

// Number gen Chapter 
function chapter_generate_num(dest){ 
    var dest = dest.data.key; 
    var number = $(this); 
    $("#" + dest).html(number.val()); 
} 

// change text 
function generate_text(dest){ 
    var text = $(this); 
    var dest = dest.data.key; 
    $("#" + dest).html(text.val()); 
} 

enter image description here

但是,當我KEYUP或鼠標鬆開上輸入它不僅改變了。 我希望它在加載時也會改變一次。因此它至少加載輸入一次。所以我試圖在eventType中做好準備,但那不起作用。

任何建議來解決這個問題?

$("#chapter_form_number").bind("mouseup ready" , {key: 'chapter_display_number'} ,  chapter_generate_num); 
$("#chapter_form_title").bind("keyup ready" , {key: 'chapter_display_title'} , generate_text); 
+0

我不認爲你可以在'document'對象以外的任何東西上綁定'ready'。我認爲它不會爲其他元素開火。 – techfoobar

+0

如何一次性調用我的函數,onload?因爲它與$(this)一起使用 – Sharpless512

+0

您的意思是'$(this).on('ready',...)'**這**是*不是文檔對象*觸發?如果它是**文檔對象,它甚至不會開火。 – techfoobar

回答

3

使用.trigger(eventType [, extraParameters ])

$("#chapter_form_number") 
    .bind("mouseup" , {key: 'chapter_display_number'}, chapter_generate_num) 
    .trigger("mouseup"); 
$("#chapter_form_title") 
    .bind("keyup" , {key: 'chapter_display_title'}, generate_text) 
    .trigger("keyup"); 
+0

工作出色,謝謝! – Sharpless512

0

你需要調用與適當的上下文(this對象)這兩個功能。試試這個

$(function() { 
    chapter_generate_num.apply($("#chapter_form_number")[0], [{data: {key: 'chapter_display_number'}}]) 
    generate_text.apply($("#chapter_form_title")[0], [{data: {key: 'chapter_display_title'}}])  
}) 

我假設這兩個函數是全局的,並且在onload事件之前定義。