准备好第二个eventType不工作

时间:2013-04-02 11:20:06

标签: javascript jquery forms javascript-events bind

我目前有一个程序,如果我更改左侧的设置,它会自动在右侧更改。所以你预览了你在做什么。

文本将自动显示在每个“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

但是只有当我在输入上键入或鼠标按钮时它才会改变。 我希望它在加载时也会改变一次。因此它至少加载输入一次。所以我试着在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);

2 个答案:

答案 0 :(得分: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");

答案 1 :(得分: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事件之前定义。