【问题标题】:Javascript does not change property valueJavascript 不会更改属性值
【发布时间】:2017-02-11 14:01:14
【问题描述】:

我正在使用 IE 并使用 Visual Studio 创建 Web 表单。

我正在尝试更改我创建的吐司样式的值。

toast html 取自这里:http://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_snackbar

我的html代码:

<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication4._Default" %>

<asp:Content runat="server" ID="FeaturedContent" ContentPlaceHolderID="FeaturedContent">

<link rel="stylesheet" href="/Styles/snakebar.css" type="text/css" />


<style type="text/css">
    #s3 {
        display: none;
    }

    .s {
        display: none;
    }

    .s2 {
        display: compact;
    }
</style>

<button onclick="myFunction()">CLICKER</button>
<div id="snackbar" class="show">
    Some text some message..
   <%-- <asp:Label runat="server" Text="Some text some message.."></asp:Label>--%>



<script>

    function myFunction() {

        var x = document.getElementById("snackbar");
        if (x != null) {

            if (document.getElementById("snackbar").style.visibility == "hidden") {

                try {
                    document.getElementById("snackbar").style.visibility = "hidden";
                    // document.getElementById("snackbar").className.replace("show", "s");
                    // document.getElementById("snackbar").className.value = "s3";
                }
                catch (ex) {
                    alert(ex);
                }
            } else {
                document.getElementById("snackbar").style.visibility = "visible";
                document.getElementById("snackbar").className.value = "show";
                window.onload = function () {

                    document.getElementById("snackbar").style.visibility = "visible";
                }
            }

        }
    }
</script>

当我按下按钮时,我总是在 style.visible 中得到“”,而不是“可见”或隐藏。 有任何想法吗?谢谢!

【问题讨论】:

标签: javascript c# html asp.net


【解决方案1】:

我认为你是打算这样做的:

window.onload = function() {
  document.getElementById("snackbar").style.visibility = "visible";

  document.getElementById("but").onclick = function() {
    var x = document.getElementById("snackbar");
    if (x != null) {
      var vis = x.style.visibility;
      x.style.visibility = vis == "" || vis == "visible" ? "hidden" : "visible"
    }
  }
}
<button id="but" type="button">CLICKER</button>
<div id="snackbar" class="show">
  Some text some message..
</div>

【讨论】:

  • 看看更新的、更隐蔽的版本
  • 谢谢!你知道有没有机会通过后面的代码来做同样的事情。我想调用 javascript 函数: Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "myFunction()", true);它确实有效,但可见性状态始终保持不变
  • function myFunction() { window.onload = function () { document.getElementById("snackbar").style.visibility = "visible"; document.getElementById("but").onclick = function () { var x = document.getElementById("snackbar"); if (x != null) { var vis = x.style.visibility; x.style.visibility = vis == "" || vis ==“可见”? “隐藏”:“可见”} } } }
  • 不要把window onload放在函数里面——它必须在外面。也无需将其放入代码隐藏中。它将在加载时执行
猜你喜欢
  • 1970-01-01
  • 2021-11-24
  • 1970-01-01
  • 2020-07-10
  • 2015-09-28
  • 2017-11-06
相关资源
最近更新 更多