1

我有一个包含列表框和按钮的网络表单。当 onmousover 事件触发时,列表框会出现;但是在页面加载时,列表框不应该是可见的。我有以下代码(请原谅背景颜色的变化):

Button2.Attributes.Add("onmouseout", 
                       "this.style.backgroundColor='Blue', 
                       ListBox3.style.display ='none'");
Button2.Attributes.Add("onmouseover", 
                       "this.style.backgroundColor='Red',
                       ListBox3.style.display='block'");

此代码在 listbox.visible 设置为 true 时有效。不幸的是,当页面加载时,列表框总是可见的,这是我想要避免的。当我将列表框设置为可见 = false 时,上面的代码不起作用。我搞砸了回发并使用了 if 语句,例如 if (button = red), display=block; 然而,无济于事。我被困在这一点上。有谁知道我需要做些什么才能使上述代码正常工作?我是 ASP.NET 的新手,所以我不知道我是否还必须对 html 做一些事情。另外,有趣的一点是,代码的背景色部分完美无缺。

我真的很感谢大家的帮助。

4

2 回答 2

3

在服务器端代码中设置 Listbox visible="false" 时,不会呈现列表框的 HTML 并将其发送到客户端。因此,您需要确保列表框被呈现,但设置为在页面加载时不可见,或者通过

  • 具有使列表框不可见的初始 CSS 样式

或者

  • 在 DOM 加载后,使用客户端上的 JavaScript 将其设置为不可见。

另请查看此显示与可见性文章

于 2009-05-05T12:32:33.437 回答
1

您可以使用 jQuery javascript 库轻松完成此操作。

而不是你的代码,你会有类似的东西:

$('#buttonid').hover(function(){
   $(this).css('background','blue');
   $('#listboxid').hide('fast');
}, function(){
   $(this).css('background','red');
   $('#listboxid').show('fast');
});

悬停的第一个功能是鼠标悬停,第二个功能是鼠标悬停。您还可以对其显示和隐藏进行动画处理,使其看起来更流畅。

于 2009-05-05T13:18:35.573 回答