Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在页面之间隐藏(切换可见性)元素_Jquery_Html_Css_Asp Classic - Fatal编程技术网

Jquery 在页面之间隐藏(切换可见性)元素

Jquery 在页面之间隐藏(切换可见性)元素,jquery,html,css,asp-classic,Jquery,Html,Css,Asp Classic,我正在努力实现一些我不确定是否可行的事情。我想要一个切换按钮来隐藏/显示页面上的元素。使用jQuery很容易做到这一点。问题是我希望在打开的下一页中记住设置 我有20页在一个网站上显示价格。切换按钮应隐藏/显示页面上的价格。我不想每次打开新页面时都切换,所以如果我将切换按钮设置为隐藏,那么所有页面上的价格都应该隐藏,直到我再次按下按钮 有人知道如何轻松完成这项工作吗?这是一个ASP页面,因此设置会话变量是一种解决方案,但使用jQuery会更酷,因为元素会立即隐藏。您想使用jQuery进行第一次切

我正在努力实现一些我不确定是否可行的事情。我想要一个切换按钮来隐藏/显示页面上的元素。使用jQuery很容易做到这一点。问题是我希望在打开的下一页中记住设置

我有20页在一个网站上显示价格。切换按钮应隐藏/显示页面上的价格。我不想每次打开新页面时都切换,所以如果我将切换按钮设置为隐藏,那么所有页面上的价格都应该隐藏,直到我再次按下按钮


有人知道如何轻松完成这项工作吗?这是一个ASP页面,因此设置会话变量是一种解决方案,但使用jQuery会更酷,因为元素会立即隐藏。

您想使用jQuery进行第一次切换,如何描述它。 然后,您希望jQuery/js连接到后端(我假设您是ASP),并在会话中为当前用户设置一些值。通过这种方式,jQuery/javascript可以顺利地完成初始隐藏,之后如果您加载了新页面,您的后端将不会向您发送价格,从而导致这些价格根本不会显示出来。(这样,您甚至不必再考虑使用jQuery删除它们)


您将不得不编辑所有20页以突然支持“不显示价格”参数。。。但是它会让你得到你想要的结果。

实现这一点的方法无穷无尽,但Viridis建议的方法听起来很可能是最好的方法

  • 从ASP会话变量初始化价格的可见性(默认为可见)
  • 单击按钮后使用jQuery显示/隐藏价格
  • 通过一个简单的ASP页面更新ASP会话变量,该页面通过同一按钮的AJAX onClick调用
这将是您的asp页面的简化版(和未测试版)!:

<html>
<head>     
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" lang="javascript" type="text/javascript"></script>
    <script lang="javascript" type="text/javascript">

        //page variable storing the show / hide flag, initialised from the session variable
        <% if Session("hidePrices") = "Y" then %>
            var hidePrices = true;
        <% else %>
            var hidePrices = false;
        <%end if%>

        //worker to actually show / hide the prices
        function showHidePrices(pHidePrices)
        {
            if(pHidePrices)
                $(".myPrices").hide();
            else
                $(".myPrices").show();
        }

        //show / hide prices button click handler
        function showHidePricesOnClick()
        {
            //toggle the flag
            hidePrices = !hidePrices;

            //show / hide the prices
            showHidePrices(hidePrices);

            //toggle the flag stored in the session variable
            $.ajax({
                url: "http://www.yoursite.com/showHidePrices.asp",
                cache: false,
                success:function(result,status,xhr){
                     alert("Called showHidePrices.asp OK!");
                }, 
                error:function(xhr,status,error){
                     alert(xhr.responseText);
                     alert(status);
                     alert(error);
                }                 
            });
        }

        //hide the prices onload if necessary
        $( document ).ready(function() {

            if(hidePrices)
            {
                showHidePrices(true);
            }
        });

    </script>   

</head>
<body>

    <p class="myPrices">price 1</p>
    <p class="myPrices">price 2</p>
    <p class="myPrices">price 3</p>

    <input type="button" onclick="showHidePricesOnClick();" value="Show / Hide Prices"/>

</body>
</html>

正如我所说,这是未经测试的(我相信可以做得更优雅),但希望能帮助您大致了解需要做什么才能实现您的目标。

感谢Ted发布完整的页面!非常感谢!我理解页面应该如何工作,但Ajax调用似乎不起作用。当我在浏览器中运行showHidePrices.asp时,会切换会话变量,但单击主页(上面的页面)上的按钮时不会切换,不会发生任何情况。你知道哪里不对吗?我编辑了下面一行,没有其他内容:url:“showHidePrices.asp”。我在AJAX调用中添加了一些额外的错误处理,希望能为您提供一些关于失败原因的额外信息(例如,找不到页面…)。关于jQuery AJAX调用的完整细节如下:我现在已经第一次测试了它(有点晚了,抱歉!),在添加了一些有用的东西之后,比如对jQuery的引用、showHidePrices后的一些括号单击按钮上的调用,最后在AJAX调用中设置正确的showHidePrices.asp路径,一切都很顺利。希望你现在也开始工作了?是的,现在工作很好!非常感谢!另外,对于我在第一篇文章中糟糕的拼写,我很抱歉,我一定是在赶时间。不会再发生了:)太好了!很高兴听到这个消息。
<%
    if Session("hidePrices") = "Y" then
        Session("hidePrices") = "N"
    else
        Session("hidePrices") = "Y"
    end if
%>