问题
1。createTab方法有3个参数 为什么title参数取不到值,但是content取的到
页面上有说明2。里面有个change
一个是 change() 一个this.change()
怎么在一个方法里面调用另一个this.change()???
var li = document.createElement("li")
li.className="li2"
li.onclick= function(){change(event.srcElement)};
//li.innerHTML=title[i]
li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
上面红色的地方就是change 用this.change就行不通3.有个add按纽 如何直接调用方法 我上面写的是先调用一个函数 在调用的方法4。
for(var i=0;i<num;i++) //循环输出title和content
{
if(i==0)
{
var li = document.createElement("li")
li.className="li2"
li.onclick= function(){change(event.srcElement)};
//li.innerHTML=title[i]
li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
var div1 = document.createElement("div")
div1.className = "div1"
div1.innerHTML = con[i]
content.appendChild(div1)
}
else
{
var li = document.createElement("li")
li.className="li1"
//li.innerHTML=title[i] 为什么title[i]取不到直,但是con[i]取的到了??? 不明白
li.innerHTML = con[i]
li.onclick= function(){change(event.srcElement)}; //参数用的是event.srcElement 用li.id就取不到正确,请大虾请教,如何避免这样的情况
li.style.width=this.width
ul.appendChild(li)
var div2 = document.createElement("div")
div2.className = "div2"
div2.innerHTML = con[i]
content.appendChild(div2)
}
}5.
不是很明白哪写该做属性 哪写该做方法 真的不明白, 我觉得全部都可以做参数(- - !)还像还有 先问到这里吧
请大虾们指教下,谢谢!!
1。createTab方法有3个参数 为什么title参数取不到值,但是content取的到
页面上有说明2。里面有个change
一个是 change() 一个this.change()
怎么在一个方法里面调用另一个this.change()???
var li = document.createElement("li")
li.className="li2"
li.onclick= function(){change(event.srcElement)};
//li.innerHTML=title[i]
li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
上面红色的地方就是change 用this.change就行不通3.有个add按纽 如何直接调用方法 我上面写的是先调用一个函数 在调用的方法4。
for(var i=0;i<num;i++) //循环输出title和content
{
if(i==0)
{
var li = document.createElement("li")
li.className="li2"
li.onclick= function(){change(event.srcElement)};
//li.innerHTML=title[i]
li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
var div1 = document.createElement("div")
div1.className = "div1"
div1.innerHTML = con[i]
content.appendChild(div1)
}
else
{
var li = document.createElement("li")
li.className="li1"
//li.innerHTML=title[i] 为什么title[i]取不到直,但是con[i]取的到了??? 不明白
li.innerHTML = con[i]
li.onclick= function(){change(event.srcElement)}; //参数用的是event.srcElement 用li.id就取不到正确,请大虾请教,如何避免这样的情况
li.style.width=this.width
ul.appendChild(li)
var div2 = document.createElement("div")
div2.className = "div2"
div2.innerHTML = con[i]
content.appendChild(div2)
}
}5.
不是很明白哪写该做属性 哪写该做方法 真的不明白, 我觉得全部都可以做参数(- - !)还像还有 先问到这里吧
请大虾们指教下,谢谢!!
-------------------------------
Tab.prototype.createTab=function(num,con,title){ //num为选项卡的个树 con为对应内容的叔祖 title为对应标题
document.getElementById(this.parentId).style.width=this.width*num +1 //得到父div的宽度var title = document.createElement("div") 2,为了兼容ff,你修改下事件的传递就好了
-----------------------
for(var i=0;i<num;i++)
{
if(i==0)
{
var li = document.createElement("li")
li.className="li2"
li.onclick= function(e){e=e||event;change(e.target||e.srcElement)}; //================================ li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
var div1 = document.createElement("div")
div1.className = "div1"
div1.innerHTML = con[i]
content.appendChild(div1)
}
else
{
var li = document.createElement("li")
li.className="li1"
alert(title[i]) li.innerHTML = con[i]
li.onclick= function(e){e=e||event;change(e.target||e.srcElement)}; //================================
li.style.width=this.width
ul.appendChild(li)
var div2 = document.createElement("div")
div2.className = "div2"
div2.innerHTML = con[i]
content.appendChild(div2)
}3,js脚本都没问题了,还有就是显示的问题,你需要修改css,你原来的样式在ff下头部换行了这个css修改我也不太行:-)
--------
回答过了2精简了下你的代码,很多都不需要用的
---------
for(var i=0;i<num;i++) //循环输出title和content
{
//if(i==0)
//{
var li = document.createElement("li")
li.className=i==0?"li2":"li1";//===========================================
li.onclick= function(){PackUp.change(this)}; //使用闭包变量来调用change,而不是this,因为此时this==li这个元素
li.innerHTML=title[i]
//li.innerHTML = con[i]
li.style.width=this.width
ul.appendChild(li)
var div1 = document.createElement("div")
div1.className =i ==0?"div1":"div2"//====================================
div1.innerHTML = con[i]
content.appendChild(div1)
/* }
else
{
var li = document.createElement("li")
li.className="li1"
li.innerHTML=title[i]
//li.innerHTML = con[i]
li.onclick= function(){PackUp.change(this)};
li.style.width=this.width
ul.appendChild(li)
var div2 = document.createElement("div")
div2.className = "div2"
div2.innerHTML = con[i]
content.appendChild(div2)
}*/
}
3.有个add按纽 如何直接调用方法 我上面写的是先调用一个函数 在调用的方法
----------
<input value="add" type="button" onclick="oo.add(document.getElementById('title').value,document.getElementById('content').value)" />你直接在按钮里面使用你创建的对象的方法来添加就好了,不过你的对象名称要和你实际创建的一致,我觉得这个没必要
4。
-------------//说明看第一点
li.onclick= function(){PackUp.change(this)}5. 不是很明白哪写该做属性 哪写该做方法 真的不明白, 我觉得全部都可以做参数(- - !)
----------------
数据做属性,实现过程做方法
var PackUp=this;//======================闭包对象for(var i=0;i<num;i++) //循环输出title和content
{
//if(i==0)
//{
var li = document.createElement("li")
li.className=i==0?"li2":"li1";//===========================================
li.onclick= function(){PackUp.change(this)}; //使用闭包变量来调用change,而不是this,因为此时this==li这个元素
虽然我这个贴子是在求助,但这个滑动门我一直在用,目前在各大主流浏览器还没有发现问题,你看看是不是你要的那种滑动门,改一下那个JS能节约不少流量,就安照那个回复的大大的改就行了,我用的已经改过了