document.write('<div id="divControlProvince" style="display: none;" class="dragDiv"><div id="divControlProvinceHeader" class="dragDivHeader"><span id="spanControlProvinceSelectResult" style="width:60px;border:solid:1px red;float:left;" ></span><span id="spanControlProvinceClose" style="float: right; margin-right: 20px; cursor: pointer;">关闭</span></div><br /><div id="divControlProvinceContent" class="divProvince"><ul id="ulControlProvince"><li>不限</li><li>广东省</li><li>北京</li><li>上海</li><li>重庆</li><li>天津</li><li>江苏</li><li>浙江</li><li>山东</li><li>辽宁</li><li>河北</li><li>河南</li><li>湖北</li><li>湖南</li><li>江西</li><li>安徽</li><li>内蒙古</li><li>吉林</li><li>黑龙江</li><li>山西</li><li>陕西</li><li>四川</li><li>云南</li><li>广西</li><li>青海</li><li>宁夏</li><li>福建</li><li>海南</li><li>贵州</li><li>西藏</li><li>新疆</li><li>甘肃</li><li>香港</li><li>澳门</li><li>台湾</li><li>国外</li></ul></div></div>');var provinceControl = function(resultid, btnid) {
this.resultEle = this.g(resultid);
this.btn = this.g(btnid);
this.hiddendiv = this.insertHiddenDiv();
this.divControlProvince = this.g("divControlProvince");
this.Init();
}provinceControl.prototype = {
g: function(id) {
return typeof (id) == "string" ? document.getElementById(id) : id;
}, insertHiddenDiv: function() {
var o = this;
var obj = o.g("divControlProvinceHiddenId");
if (obj) {
return obj;
}
else {
$("body").append('<div id="divControlProvinceHiddenId" style="filter: alpha(opacity=30); -moz-opacity: 0.3; opacity: 0.3; text-align: center; background-color: #000; z-index: 1000;position: absolute; display: none; overflow: hidden;"></div>');
return o.g("divControlProvinceHiddenId");
}
}, Init: function() {
var o = this;
new dragLayerObj("divControlProvinceHeader"); $("#ulControlProvince").children().each(function(i, m) {
$(m).bind("click", function() {
$("#spanControlProvinceSelectResult").text($(this).text());
});
}); $(o.btn).bind("click", function(event) { o.ShowContent(event); }); $("#spanControlProvinceClose").bind("click", function() {
// alert($(o.resultEle).attr("id"));
//$(o.resultEle)[0].text($("#spanControlProvinceSelectResult").text());
alert(o.resultEle.id);
o.divControlProvince.style.display = "none";
o.hiddendiv.style.display = "none";
}) $(o.resultEle).bind("click", function() { $(this).text(""); });
}, ShowContent: function(evt) {
var o = this;
var e = evt ? evt : window.event;
var de;
if (document.compatMode == "CSS1Compat") de = document.documentElement;
else de = document.body;
var pos = [e.clientX + de.scrollLeft, e.clientY + de.scrollTop];
var hid = o.hiddendiv;
o.showhid(hid);
o.divControlProvince.style.left = (pos[0]) + "px";
o.divControlProvince.style.top = (pos[1]) + "px";
o.divControlProvince.style.display = o.divControlProvince.style.display == "none" ? "block" : "none";
hid.style.display = o.divControlProvince.style.display;
}, showhid: function(hid) {
hid.style.left = 0 + "px";
hid.style.top = 0 + "px";
hid.style.width = window.screen.availWidth + "px";
hid.style.height = (window.screen.availHeight + 200) + "px";
}
}
new provinceControl("spanloc_reg", "btnloc_reg");
new provinceControl("spanloc_now", "btnloc_now");
new 了两个 对象
$("#spanControlProvinceClose").bind("click", function() {
// alert($(o.resultEle).attr("id"));
//$(o.resultEle)[0].text($("#spanControlProvinceSelectResult").text());
alert(o.resultEle.id);
o.divControlProvince.style.display = "none";
o.hiddendiv.style.display = "none";
})
这是里面的一个函数。但是 alert(o.resultEle.id);会出现两次。
就是说“spanloc_reg”与"spanloc_now" 都放到o.resultEle里面啦。
请问应该怎样改?
这些不是每一个对象就有一个副本吗?
为什么是共用呢?
$("#spanControlProvinceClose").bind("click", function() {
// alert($(o.resultEle).attr("id"));
//$(o.resultEle)[0].text($("#spanControlProvinceSelectResult").text());
alert(o.resultEle.id);
o.divControlProvince.style.display = "none";
o.hiddendiv.style.display = "none";
})
g: function(id) {
return typeof (id) == "string" ? document.getElementById(id) : id;
},
因为我还是对dom的操作比较熟,对jq只能局部应用。以后我会尽量注意的。。谢谢