जब विंडो का आकार बदलता है तो मैं साझा स्थिति को बदलकर डीओएम के अंदर कई तत्वों को छिपाने की कोशिश कर रहा हूं।

<body class="font-body relative" x-data="{hideOnMobile:false}">
 <section class="mt-5" :class={'section' : !hideOnMobile , 'hidden' : hideOnMobile}">
   ...
  </section>
</body>

और जब मैं करने की कोशिश करता हूँ

window.onresize = function (event) {
   let data = document.querySelector('[x-data]');
         
       if (window.innerWidth > 639) {
           return data.__x.$data.hideOnMobile = true;
       }
    };

इसे राज्य ** HideOnMobile ** को सत्य में बदलना चाहिए, लेकिन यह किसी भी तरह से कोई विचार नहीं है?

2
Umedzhon Izbasarov 27 अक्टूबर 2020, 19:09

3 जवाब

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

क्या आपने @resize.window का उपयोग करने का प्रयास किया है? (यानी Alpine.js का उपयोग करके resize श्रोता को जोड़ना) यह आपके कोड को window.onresize + Alpine.js __x.$data आंतरिक को अपडेट करने का प्रयास करने की तुलना में सरल बनाना चाहिए।

<body
  class="font-body relative"
  x-data="{hideOnMobile:false}"
  @resize.window="hideOnMobile = window.innerWidth > 639"
>
 <section class="mt-5" :class={'section' : !hideOnMobile , 'hidden' : hideOnMobile}">
   ...
  </section>
</body>
2
Hugo 5 नवम्बर 2020, 14:20

x-data विशेषता से पहले आपके पास कोई स्थान नहीं है। इस लाइन को बदलने का प्रयास करें:

<body class="font-body relative"x-data="{hideOnMobile:false}">

इसके लिए:

<body class="font-body relative" x-data="{hideOnMobile:false}">

0
Maksym Bezruchko 27 अक्टूबर 2020, 19:11

ऐसा लगता है कि यह अल्पाइनजेएस रीडमी में एक उदाहरण के रूप में प्रयोग किया जाता है। इसकी जांच करें:

.विंडो संशोधक उदाहरण:

<div x-on:resize.window="isOpen = window.outerWidth > 768 ? false : open"></div>

किसी ईवेंट श्रोता में .window जोड़ना श्रोता को DOM नोड के बजाय वैश्विक विंडो ऑब्जेक्ट पर स्थापित करेगा जिस पर इसे घोषित किया गया है। यह तब उपयोगी होता है जब आप घटक स्थिति को संशोधित करना चाहते हैं जब विंडो के साथ कुछ बदलता है, जैसे आकार बदलें घटना। इस उदाहरण में, जब विंडो 768 पिक्सेल से बड़ी हो जाती है, तो हम मोडल/ड्रॉपडाउन को बंद कर देंगे, अन्यथा उसी स्थिति को बनाए रखेंगे।

0
Eric Wikman 12 पद 2020, 03:40