Asp.net 隐藏div不';不行?
我有一个默认情况下隐藏的div,当用户单击show链接时,调用以下javascript方法:Asp.net 隐藏div不';不行?,asp.net,jquery,Asp.net,Jquery,我有一个默认情况下隐藏的div,当用户单击show链接时,调用以下javascript方法: function ChangeControlVisibility(elementID) { var element = $("#" + elementID); if (element.css('display') != 'block' && element.css('display') != 'table') { element.show();
function ChangeControlVisibility(elementID) {
var element = $("#" + elementID);
if (element.css('display') != 'block' && element.css('display') != 'table') {
element.show();
var tempElement = $('div.expanded');
if (tempElement.length > 0) {
tempElement.css('background-image', 'url(../images/arrow1.gif)');
}
}
else {
element.hide();
var tempElement = $('div.expanded');
if (tempElement.length > 0) {
tempElement.css('background-image', 'url(../images/arrow2.gif)');
}
}
}
此步骤有效,但当我在page_load事件中调用上一个方法时,该方法不起作用:
未定义元素css('display')
前面的代码有问题吗???您是否在
.ready()
处理程序中执行该代码
顺便说一下,除非您真的需要显式地检查显示状态表
,否则您可以要求
$(document.ready(function(){
if (!element.is(':visible')){
}
else{
}
});
参考:,查看:隐藏和:可见jQuery选择器。试着这样做:
function ChangeControlVisibility(elementID) {
var vis = $("#" + elementID).toggle().is(':visible');
$('div.expanded').css('background-image', 'url(../images/arrow' + (vis ? '1' : '2') + '.gif)');
}
函数ChangeControlVisibility(elementID){
var hiddenElement=$(“#”+elementID+”:隐藏);
变量元素=$(“#”+elementID);
如果(hiddenElement.length>0){//检查此元素是否存在
hiddenElement.show();
var tempElement=$('div.expanded');
如果(tempElement.length>0){
css('background-image','url(../images/arrow1.gif)');
}
}
否则{
元素。隐藏();
var tempElement=$('div.expanded');
如果(tempElement.length>0){
css('background-image','url(../images/arrow2.gif)');
}}
}您可以使用和来简化它,如下所示:
function ChangeControlVisibility(elementID) {
var vis = $("#" + elementID).toggle().is(':visible');
$('div.expanded').css('background-image', 'url(../images/arrow' + (vis ? '1' : '2') + '.gif)');
}
这将切换可见性(通过封面下的
.hide()
/.show()
)并检查结果的可见性,以查看它是否显示在页面中,并根据此设置箭头图像。感谢重播,但问题是我想在加载页面时进行c验证后注册jquery方法,此时元素未定义