मेरे एमवीसी एप्लिकेशन में मेरे पास एक दृश्य है जिसमें मैं प्रत्येक 10 सेकंड में पृष्ठ को रीफ्रेश करता हूं। मेरे पास दृश्य में कुछ अनुच्छेद छिपे हुए हैं और एक बटन है जो उन अनुच्छेदों को छिपाए नहीं रखता है। समस्या यह है कि जब मैं पृष्ठ 10 सेकंड में स्वचालित रूप से पुनः लोड होने पर अनुच्छेद दिखाने के लिए बटन पर क्लिक करता हूं तो अनुच्छेद छुपा देता है।

यह बटन है:

 <button id="button">Display Internal Sequences</button>

यह पैराग्राफ है:

<p1 hidden style="text-align:center;font-size: 50px; padding:-25px; margin:-25px;">@Html.Label(@Model.CSLine.ModuleOrderInternalSequence > long.MinValue ? @Model.CSLine.ModuleOrderInternalSequence.ToString() : string.Empty)</p1>

P को छिपाए नहीं रखने के लिए यह स्क्रिप्ट है:

   <script>
         $(document).ready(function () {
         $("#button").click(function () {

             $("p1").attr("hidden", false);
              var show ='true';            
              localStorage.setItem(key, show);   

              });
          });
      </script>

यह प्रत्येक 10 सेकंड में पुनः लोड होता है:

setTimeout(function () {
    window.location.reload(1);
        }, 10000);
$(document).ready(function() {
    var show = localStorage.getItem(key);
    if (show == 'true') 
    {
        $("p1").attr("hidden", false);
    }           })

नतीजा यह है कि पैराग्राफ प्रत्येक पुनः लोड के बाद छुपा हुआ है। मैं चाहता हूं कि जब मैं बटन पर क्लिक करूं तो पैराग्राफ पुनः लोड होने के बाद भी छिपा न हो।

शुक्रिया

0
Amira Abdouli 5 पद 2018, 19:57

3 जवाब

सबसे बढ़िया उत्तर

https://jsfiddle.net/hbmk7e2L/ आज़माएं

नोट: आपका पृष्ठ इस मामले में केवल बाद १० सेकंड के बाद पुनः लोड होगा और केवल एक बार ताज़ा होगा।

यदि आप चाहते हैं कि पृष्ठ हर 10 सेकंड में ताज़ा हो, तो आपको setTimeout के बजाय setInterval का उपयोग करना चाहिए।

<script>
  $(document).ready(function() {
    // If you want the page to refresh constantly, you should use setInterval intead of setTimeout. setTimeout fires only once.
    setTimeout(function () {
        window.location.reload(1);
    }, 10000);

    $("#button").click(function() {
        $("p1").attr("hidden", false);
        localStorage.setItem("show_p1", true);
    });

    if (localStorage.getItem("show_p1") == 'true') {
        $("p1").attr("hidden", false);  
    }
  });
</script>


<p1 hidden style="text-align:center;font-size: 50px; padding:-25px; margin:-25px;">@Html.Label(@Model.CSLine.ModuleOrderInternalSequence > long.MinValue ? @Model.CSLine.ModuleOrderInternalSequence.ToString() : string.Empty)</p1>

<button id="button">Display Internal Sequences</button>
0
cenk 5 पद 2018, 20:47

attr() के बजाय jQuery की prop() विधि का उपयोग करने का प्रयास करें:

$("p1").prop("hidden", false);

prop() के लिए jQuery दस्तावेज़ दो विधियों के बीच अंतर का वर्णन करता है, विशेष रूप से hidden जैसे बूलियन विशेषताओं के लिए। साथ ही, इस .prop() vs.attr() से संबंधित एक पोस्ट यहां दी गई है।

-1
WizKaleeb 5 पद 2018, 20:39
if (show = 'true') 

यह तुलना नहीं है, आप "शो" के मान को "सत्य" पर सेट कर रहे हैं। मूल्यों की तुलना करने के लिए == का प्रयोग करें।

0
Enrico Dias 5 पद 2018, 20:07