解决方案 »
- document.getElementsByClassName 返回值?
- js 图片切换刷屏 如何修改
- 一个JS验证:坐标+高宽使图片不能重叠
- 想做一个在线代码编辑器,但是语法加亮这部分太慢了。
- 用JavaScript如果去删除页面中的一个input
- javascript做随机图片显示,怎么老是执行不了 ?
- 求一个"图片滚动显示+鼠标放上放大"的效果!
- 客户有个需求 通过svg 生成 图片 然后 点击btn 此时右键ctrl+v可以直接将图片 复制到 word等。。文档中
- 表单提交onclick冲突
- 帮我看看这段
- 如何对iframe进行添加和更改css才做?
- Array.prototype.push.call是什么意思啊
然后 alert(a.x ); ?
因为 我声明 时 this.x
那么 this.x 就是Js 的私有对象。
所以,这个也是不行啊。
//缓存this
var _this = this;
this.x;
this.y;
this.F_Point = function() {
var MoveEvent=new AboutEvent();
MoveEvent.addEventHandler(document.body, "mouseup", this.DocumentMouseUp);
};
// DocumentMouseUp只是个辅助函数,没必要暴露给外面
function DocumentMouseUp(ev){
ev = ev || window.event; // 事件
////////下面的代码有问题:
_this.x=ev.clientX;
_this.y=ev.clientY;
alert(_this.Name);
_this.x ; //我想调用它 (这就是我问的问题)
_this.y ; //我想调用它 (这就是我问的问题)
};
}
<script type="text/javascript" language="javascript">
var obj = function(x, y){
this.x = x;
this.y = y;
alert(this.x);
};
var o = new obj(1, 2);
alert(o.x);
alert(o.y);
</script>看一下这个例子能不能帮助你.
var _Point = function(x, y) {
//缓存this
var _this = this;
this.x;
this.y;
........
==============引用 5 楼 axiheyhey END ========
#5 楼 axiheyhey
的方法可以达到我的目的:
特此感谢!! 为了给关注我的贴子的 贴友一个 答案,请看 下面的代码。
<html >
<head runat="server">
<title></title>
<style type="text/css">
#divTest
{
color:White;
background-color:Gray;
width:200px;
height:100px;
left:400px;
top:200px;
position:absolute;
border:solid 1px #7732f0 ;
}
#divShow
{
background-color:Yellow;
width:200px;
height:100px;
left:10px;
top:10px;
position:absolute;
border:solid 1px #7732f0 ;
}
</style>
<script type="text/javascript" src="JS/jquery-1.4.2.js"></script>
<script type="text/javascript" src="JS/jquery-1.4.2-vsdoc.js"></script>
<script type="text/javascript">
////////////////这里是动态事件代码///////////////////////////////////////////////////
var AboutEvent = function(){
//缓存this
var _this=this;
//增加 事件 处理function
this.addEventHandler=
function (oTarget, sEventType, fnHandler) {
if (oTarget.addEventListener) {
oTarget.addEventListener(sEventType, fnHandler, false);
} else if (oTarget.attachEvent) {
oTarget.attachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = fnHandler;
}
};
//移除 事件 处理function
this.removeEventHandler = function (oTarget, sEventType, fnHandler) {
if (oTarget.removeEventListener) {
oTarget.removeEventListener(sEventType, fnHandler, false);
} else if (oTarget.detachEvent) {
oTarget.detachEvent("on" + sEventType, fnHandler);
} else {
oTarget["on" + sEventType] = null;
}
};
//用法
//addEventHandler(document, "mousemove", f1);
//addEventHandler(document, "mouseup", f2);
};
var _Point = function(px, py) {
//缓存this
var _this = this;
this.x=px;
this.y=py;
this.GetPoint = function(){
return ("<hr/>"+"x="+this.x.toString()+"<br/>y="+this.y.toString()+"<hr/>");
};
this.F_Point = function() {
var Event=new AboutEvent();
Event.addEventHandler(document.body, "mouseup", this.DocumentMouseUp);
};
this.DocumentMouseUp= function (ev){
ev = ev || window.event; // 事件
_this.x=ev.clientX;
_this.y=ev.clientY;
$("#divTest").html("<hr/>"+"x="+ev.clientX.toString()+"<br/>y="+ev.clientY.toString()+"<hr/>");
};
};
$(function(){
var pp = new _Point(1,1);
pp.F_Point();
$("#divTest").mouseenter(function(){
$("#divShow").html(pp.GetPoint());
});
});
</script>
</head>
<body>
<div>
<div id="divTest"></div>
<div id="divShow"></div>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br />
</div>
</body>
</html>以上代码 就是证实了
#5 楼 axiheyhey
的方法 是行的。
也可以这么做:var _Point = function(px, py) {
this.x=px;
this.y=py;
this.GetPoint = function(){
return ("<hr/>"+"x="+this.x.toString()+"<br/>y="+this.y.toString()+"<hr/>");
};
this.F_Point = function() {
var Event=new AboutEvent();
Event.addEventHandler(document.body, "mouseup", this.DocumentMouseUp);
};
this.DocumentMouseUp= (function (that){
return function(ev){
ev = ev || window.event; // 事件
that.x=ev.clientX;
that.y=ev.clientY;
$("#divTest").html("<hr/>"+"x="+ev.clientX.toString()+"<br/>y="+ev.clientY.toString()+"<hr/>");
};
})(this);//将当前的this传到事件函数中去
};
楼主态度很好哈,赞一个!
也可以这么做:
JScript code
var _Point = function(px, py) {
this.x=px;
this.y=py;
this.GetPoint = function(){
return ("<hr/>"+"x="+this.x……
============引用 9 楼 sharkdbj END ===========
现在 通过了
#9 楼 sharkdbj
的例子,引导我对 js闭包 认识,了解 闭包的一个 作用 。