2009-12-04 102 views
0

我有这样JavaScript的面向对象的问题

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
    <script src="JScript2.js" type="text/javascript"></script> 
    <script src="JScript.js" type="text/javascript"></script> 
    <title></title> 
</head> 
<body > 
    <div ><input type=text id="uxTextBox" /></div> 
</body> 
</html> 

和2这样

/// <reference path="JScript.js"/> 
/// <reference path="jquery-1.3.2-vsdoc.js"/> 
/// <reference path="jquery-1.3.2.js" /> 

$(document).ready(function() { 
    referral.PopulateTextBox(); 

} 

第一的=====端的JavaScript文件的HTML页面========= =文件

/// <reference path="jquery-1.3.2-vsdoc.js"/> 
/// <reference path="jquery-1.3.2.js" /> 


var referral = new Referral(); 
$(document).ready(function() { 
function Referral() { 
    this.PopulateTextBox = function() { 
    $("#uxTextBox").text("some text"); 


    } 
} 

} 

的问题是,无论是2个jQuery的文件似乎执行。我试图填充从另一个js文件的调用对象,然后将值返回到HTML文件

任何想法?

回答

2

这是关于范围,JavaScript有功能范围,因此,所有你的$(document).ready回调函数里面做的变量和函数声明,如下:

文档中把这个作为第一个<script>标签只能在该范围内访问。

例如:

$(document).ready(function() { 

    function Referral() { 
    // ... 
    } 

    // Referral is accessible here 
}); 
// But not here 

你可以宣布你的Referralconstructor function在全球范围内,如您打算从多个文件中使用它。

如果你不喜欢你全局可实现命名空间技术:

有关范围的更多信息:

0

您需要确保在您的html页面中包含jQuery源代码。 “参考”评论看起来像是你的编辑器插入的东西,所以它可以找出你正在使用的文件,但这些评论做而不是告诉浏览器在哪里得到jQuery源代码。

<script src="/path/to/jquery.js"></script>