用于隐藏html列的Javascript语法
我正在研究切换显示和隐藏表列的代码 我假设这会创建一个数组:用于隐藏html列的Javascript语法,javascript,html,dom,Javascript,Html,Dom,我正在研究切换显示和隐藏表列的代码 我假设这会创建一个数组: var States = { }; 为什么不需要这个 此行是否将States col element.isOpen属性设置为true States[col] = {isOpen : true}; 我正在研究如何修改此函数,以便使用cookie保存此列的状态。i、 e.-呈现页面时,列默认设置为无。但是,如果最后一个操作是ShowColumn,并且页面被重新呈现,我希望该列仍然处于打开状态,而不是返回默认状态 守则: /*****
var States = { };
为什么不需要这个
此行是否将States col element.isOpen属性设置为true
States[col] = {isOpen : true};
我正在研究如何修改此函数,以便使用cookie保存此列的状态。i、 e.-呈现页面时,列默认设置为无。但是,如果最后一个操作是ShowColumn,并且页面被重新呈现,我希望该列仍然处于打开状态,而不是返回默认状态
守则:
/**************************************************************************
*
* Function: toggleVis
*
* Description: Following Function hides and expands the main column.
*
*
***************************************************************************/
// Set the default "show" mode to that specified by W3C DOM
// compliant browsers
var showMode = 'table-cell';
// However, IE5 at least does not render table cells correctly
// using the style 'table-cell', but does when the style 'block'
// is used, so handle this
if (document.all) showMode='block';
// This is the function that actually does the manipulation
var States = { };
function toggleVis(col){
if (!States[col] || States[col].IsOpen == null)
{
States[col] = {isOpen : true}; // This assumes the cell is already shown
//States[col] = {isOpen : false}; // This assumes the cell is already hidden
}
//mode = States[col].IsOpen ? showMode : 'none';
mode = States[col].IsOpen ? 'none' : showMode; //starts from closed, next click need open
cells = document.getElementsByName(col);
for(j = 0; j < cells.length; j++) cells[j].style.display = mode;
States[col].IsOpen = !States[col].IsOpen;
}
/**************************************************************************
*
*功能:toggleVis
*
*描述:以下函数隐藏并展开主列。
*
*
***************************************************************************/
//将默认的“显示”模式设置为W3CDOM指定的模式
//兼容浏览器
var showMode='表格单元格';
//然而,IE5至少不能正确地呈现表格单元格
//使用样式“表格单元格”,但在样式“块”时使用
//使用了,所以处理这个
如果(document.all)showMode='block';
//这是实际执行操作的函数
变量状态={};
功能切换(col){
如果(!States[col]| | States[col].IsOpen==null)
{
States[col]={isOpen:true};//这假设单元格已经显示
//States[col]={isOpen:false};//这假设单元格已隐藏
}
//模式=状态[col].IsOpen?显示模式:“无”;
mode=状态[col].IsOpen?'none':showMode;//从关闭开始,下一步单击需要打开
单元格=document.getElementsByName(col);
对于(j=0;j
好吧,也许这太离谱了,但我认为你这样做完全是错误的
$('.col2').show()
...
States[col].IsOpen = !States[col].IsOpen;
// uses the function from quirksmode.org
createCookie("colState", States[col].IsOpen, 7 /*days until expiration*/);
}
你完了
有了正确的库,这样的事情就容易多了。看到它以其他方式完成是很痛苦的。好吧,也许这有点离谱,但我认为你这样做完全是错误的
$('.col2').show()
...
States[col].IsOpen = !States[col].IsOpen;
// uses the function from quirksmode.org
createCookie("colState", States[col].IsOpen, 7 /*days until expiration*/);
}
你完了
有了正确的库,这样的事情就容易多了,看到它以其他方式完成很痛苦。语法,
var States={}
,用于创建新对象
类似地,
{isOpen:true}
创建一个新对象,该对象的isOpen
属性等于true
语法var States={}
,用于创建一个新对象
var States = {}
类似地,{isOpen:true}
创建一个新对象,该对象的isOpen
属性等于true
var States = {}
这将创建一个新的对象-数组和对象在javascript中非常相似,但存在一些细微的差异
States[col] = {isOpen : true}
创建一个新对象并将其放入States对象的下一个索引中。例如,现在可以使用States.col1.isOpen访问此值
我注意到您有两种不同的键入方式:IsOpen-en-IsOpen,这可能会给您带来问题
接下来,您必须使用所需信息设置cookie-查看以下URL:
希望这有帮助
这将创建一个新的对象-数组和对象在javascript中非常相似,但存在一些细微的差异
States[col] = {isOpen : true}
创建一个新对象并将其放入States对象的下一个索引中。例如,现在可以使用States.col1.isOpen访问此值
我注意到您有两种不同的键入方式:IsOpen-en-IsOpen,这可能会给您带来问题
接下来,您必须使用所需信息设置cookie-查看以下URL:
希望这有帮助 您需要一些基本概念: 首先 cookie只是一个特殊格式的字符串,可以作为文档对象的属性访问: 您只需在toggleVis函数末尾保存状态:
$('.col2').show()
...
States[col].IsOpen = !States[col].IsOpen;
// uses the function from quirksmode.org
createCookie("colState", States[col].IsOpen, 7 /*days until expiration*/);
}
并在窗口加载时读取cookie(这只是伪代码):
秒
使用大括号声明对象,变量名区分大小写
States[col] = { isOpen : true };
不一样
States[col] = { IsOpen : true };
您的代码中似乎存在此错误,因为您试图读取IsOpen,但设置了IsOpen。您需要一些基本概念: 首先 cookie只是一个特殊格式的字符串,可以作为文档对象的属性访问: 您只需在toggleVis函数末尾保存状态:
$('.col2').show()
...
States[col].IsOpen = !States[col].IsOpen;
// uses the function from quirksmode.org
createCookie("colState", States[col].IsOpen, 7 /*days until expiration*/);
}
并在窗口加载时读取cookie(这只是伪代码):
秒
使用大括号声明对象,变量名区分大小写
States[col] = { isOpen : true };
不一样
States[col] = { IsOpen : true };
您的代码中似乎存在此错误,因为您尝试读取IsOpen,但设置了IsOpen。是的,我知道这很痛苦,但是无法添加jQuery。是的,我知道这很痛苦,但是无法添加jQuery。谢谢。Re:小写的“isOpen”,这真的有效吗?当我将其替换为大写等参时,第一次单击不会执行任何操作,或将其设置为默认-关闭。然后,在切换之后单击下一个按钮,等等。我不明白这与此行为有什么关系?Javascript区分大小写,您可能会遇到一个isOpen/isOpen