【发布时间】:2018-07-23 16:41:09
【问题描述】:
我正在使用 VS 2017 C# webforms 应用程序并拥有以下代码:
这个简单的代码尝试将 TextBoxes 的背景更改为黄色。
单击按钮后,文本框的背景会短暂变为黄色,但随后立即重置为白色。
我注意到在第二次调用 page_load 事件后转换为白色。我需要您就第二页加载如何影响 jQuery 以及如何解决上述问题提供反馈。
<!DOCTYPE html>
<script src="JQuery/jquery-3.3.1.js"></script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
$("document").ready(function () {
$("#g").click(function () {
alert("test");
$(".small,.big").css("background-color", "yellow");
});
});
</script>
<style>
.small
{
font-style:italic;
}
.big
{
font-style:italic;
}
</style>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:TextBox runat="server" CssClass="big">ABC</asp:TextBox>
<br />
<asp:TextBox runat="server" Font-Bold="true" CssClass="small big" >ABC</asp:TextBox>
<br />
<input type="text" class="big" value="lll"/>
<br />
<asp:Button runat="server" ID="g" Text="click" />
</div>
</form>
</body>
</html>
【问题讨论】:
-
你能解释一下你所说的“第二页加载”是什么意思吗?每当页面加载发生时,您在先前元素上放置的任何内联样式都会被破坏,因为加载会替换所有内容。
-
程序运行页面加载时。单击按钮后,第二次触发页面加载。
-
如果您希望类更改在回发之间保持不变,您需要从后面的代码管理类更改。
-
对,所以任何内联样式都会被破坏,除非你重新运行脚本逻辑来设置它。
-
好的,谢谢。所以你们建议我从后面的代码中使用像 RegisterClientScriptBlock 这样的方法?