jQuery<;功能>;这不是一个函数

jQuery<;功能>;这不是一个函数,jquery,Jquery,我正在尝试创建一个简单的文本块,当3个表单字段中的1个发生更改时,该文本块将进行更新 这是我的jQuery,它不断出现以下错误:TypeError:$(…)。updateTitlePrefix不是一个函数 有人能告诉我我做错了什么吗 $ = jQuery.noConflict(); $(document).ready(function() { $('#dataEntryForm\:studyId').updateTitlePrefix(); $('#dataEntryForm

我正在尝试创建一个简单的文本块,当3个表单字段中的1个发生更改时,该文本块将进行更新

这是我的jQuery,它不断出现以下错误:
TypeError:$(…)。updateTitlePrefix不是一个函数

有人能告诉我我做错了什么吗

$ = jQuery.noConflict();

$(document).ready(function() {

    $('#dataEntryForm\:studyId').updateTitlePrefix();
    $('#dataEntryForm\:formNumberQualifier').updateTitlePrefix();
    $('#dataEntryForm\:formVersionNumber').updateTitlePrefix();
});

// updates the titlePrefix when either the study#, form# or form version are changed    
$.fn.updateTitlePrefix() = function() {
    $(this).change(function() {
        $('#dataEntryForm\:titlePrefix').text($('#dataEntryForm\:formNumberQualifier').text() + $('#dataEntryForm\:formVersionNumber').text() + $('#studyId').text())
    });
}
不确定这是否相关,但我使用jQuery1.3.2,因为这是一个JSF项目,Richfaces库中包含了这个项目

$.fn.updateTitlePrefix = function() {
去掉括号就赢了

$.fn.updateTitlePrefix()
是一个函数调用;因为您只是声明函数,所以不需要调用该函数

对于期望函数作为参数的函数,这是一个常见的问题。比如说

function requriesFn(myFunction) {}
requiresFn(doStuff()); // incorrect (passes the return value of the function doStuff)
requiresFn(doStuff); // correct (passes the function itself)

$.ajax({
    error: $.noop() // incorrect
    error: $.noop // correct
});

// and my biggest pet peeve, 
$(document).ready(function() {
    myFunction();  
});
// simplify it
$(document).ready(myFunction);
// simplify it some more
$(myFunction);

从技术上讲,可能需要调用一个函数来返回另一个函数,但通常情况并非如此。

看起来您是在文档准备就绪时执行代码的,因为否则您将看到错误“ReferenceError:赋值中的左侧无效”。我可能是错的;但不管怎样,我很确定这是一种
方法
…只是出于好奇,最终可能只是一种偏好。但是,为什么不将该函数保留为基本函数(不是绑定jq函数),然后将其绑定到docready上的选择器上呢。这样做,您就可以灵活地在以后重用您的函数,或者为ui中可能出现的其他事件重用函数。简而言之,将事件与函数解耦。现在,它似乎是紧密结合和单一目的的$(function(){$('yourselectors').change(function(){yoursfunction(this);})});我知道你们中的一个jQuery机器会在几秒钟内把我弄直。