Jquery和javascript名称

Jquery和javascript名称,javascript,jquery,Javascript,Jquery,在尝试命名我的js/jquery代码时,我遇到了以下问题 基本上,我曾经在每个html/php文件中编写所有JS代码,我想将其抽象为一个带有名称空间的JS文件 因此,在我的html文件中,我有: <script type="text/javascript"> $(document).ready(productActions.init()); </script> var productActions = { init: function() {

在尝试命名我的js/jquery代码时,我遇到了以下问题

基本上,我曾经在每个html/php文件中编写所有JS代码,我想将其抽象为一个带有名称空间的JS文件

因此,在我的html文件中,我有:

<script type="text/javascript"> 
    $(document).ready(productActions.init());
</script>
var productActions = {
    init: function() {

        alert('initialsed');

        $('#field_id').change(function() {
            alert('ok!');
        });     
    }
productActions init函数肯定正在运行,因为我得到了第一个警报(初始化)。然而,似乎没有一个jquery绑定函数做任何事情。单步执行init函数表明上面的change函数正在注册,但实际上更改字段中的值完全没有任何作用

我是不是漏掉了什么明显的东西

$(document).ready(productActions.init());
此代码立即调用
init()
,并将其返回值传递给
ready(…)
。(与任何其他函数调用一样)

相反,你可以写作

$(document).ready(productActions.init);
传递函数本身。但是,这会用错误的
this
调用它;如果您需要
,请编写

$(document).ready(function() { productActions.init() });
此代码立即调用
init()
,并将其返回值传递给
ready(…)
。(与任何其他函数调用一样)

相反,你可以写作

$(document).ready(productActions.init);
传递函数本身。但是,这会用错误的
this
调用它;如果您需要
,请编写

$(document).ready(function() { productActions.init() });

很好,我刚学到两件事;),你能解释一下为什么“这个”是错的吗?它会指向jqueryready函数的“this”吗?因此,如果我需要将变量传递给init函数,那么我将使用$(document).ready(function(){productActions.init(var1,var2)})@Marcel:
是根据调用函数的方式设置的。很好,我刚学到两件事;),你能解释一下为什么“这个”是错的吗?它会指向jqueryready函数的“this”吗?因此,如果我需要将变量传递给init函数,那么我将使用$(document).ready(function(){productActions.init(var1,var2)})@Marcel:
是根据调用函数的方式设置的。