![](/img/trans.png)
[英]Why code behind C# button_clicked function doesn't call Javascript function?
[英]Why a Javascript function call doesn't work after changing visibility from code behind
我有这两个JS函数的图像:
<div id="myDiv" runat="server" visible="false">
<asp:Image ID="myImage" runat="server" ImageUrl="~/....png"
onmouseover="someFunc();" onmouseout="someFunc2();" />
<div/>
当我单击某个按钮时,将myDiv
visible
更改为true
。
但是随后onmouseover
和onmouseout
不起作用。
如果默认情况下myDiv
是可见的,那么它将起作用。 那么如何使这两个函数调用w
更改可见度后还是ork?
这在更新面板中,可见性通过ajax更改。
为此,请使用设置display:none
在代码后面,而不是Visible=false
<div id="myDiv" runat="server">
<asp:Image ID="myImage" runat="server" ImageUrl="~/....png"
onmouseover="someFunc();" onmouseout="someFunc2();" />
<div/>
在后面的代码中
myDiv.Style["display"] = "none";// hide
myDiv.Style["display"] = "block";//show
//myDiv.visible=false;// dont work
试试这个(默认隐藏)
<div id="myDiv" runat="server" style="display:none;">
<asp:Image ID="myImage" runat="server" ImageUrl="~/....png"
onmouseover="someFunc();" onmouseout="someFunc2();" />
<div/>
在您的按钮内单击事件,我想这是在代码后面
protected void youBtn_Click(object sender, EventArgs e)
{
if(your condition) // show
{
myDiv.Attributes.Add("style","display:block");
}
else // hide
{
myDiv.Attributes.Add("style","display:none");
}
}
Asp.net不会呈现不可见的元素。 这样可以节省字节。
这仅发生在服务器元素上。 您可以通过删除“ runat =“ server””使其成为客户端元素来解决此问题。 您可以使用display: none
隐藏元素display: none
<div id="myDiv" style="display: none">
<asp:Image ID="myImage" runat="server" ImageUrl="~/....png"
onmouseover="someFunc();" onmouseout="someFunc2();" />
<div/>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.