Programim dhe zhvillim, javascript, python, php, html

duke përdorur ui-disaktivizuar në butonat e dialogut

Unë jam duke përdorur jquery mobile dhe brenda një <form> kam butonat 'ruaj' dhe 'redakto' (etiketat <a> me data-role="button"). Pasi të klikohet butoni i ruajtjes, hapet një dialog/konfirmim. Në këtë dialog janë opsionet e zakonshme të konfirmimit/anulimit.

Ajo që dua të ndodhë është pasi të klikohet 'konfirmo' dhe duke përdorur data-rel="back" për t'u kthyer në faqen e formularit, dua që butoni i ruajtjes të çaktivizohet dhe butoni i modifikimit, që ishte i çaktivizuar si parazgjedhje, të aktivizohet.

HTML:

<!--save button--><a class="save_button" data-role="button" href="save.html" data-rel="dialog" data-transition="pop">Save/Enter Line-Up</a>
<!--edit button--><a class="edit_button" data-role="button" href="edit.html" data-rel="dialog" data-transition="pop">Edit Line-Up</a>

(ruaj.html):

<div data-role="content">   

    <p>Do You Want To Save?</p>

    <a class="confirm_button" href="#" data-role="button" data-rel="back">Confirm</a>
    <a class="cancel_button" href="#" data-role="button" data-rel="back">Cancel</a>

</div><!-- /content -->

JS:

$(document).ready(function() {

$('.edit_button').addClass('ui-disabled');
        /*edit button*/

    $('.confirm_button').on("click", function() {
      $('.edit_button').removeClass('ui-disabled');
      $('.save_button').addClass('ui-disabled');
    });
});

Nuk mund ta bëj këtë të funksionojë. JS-ja e mësipërme funksionon nëse nuk largohem nga faqja (d.m.th. nëse butoni i konfirmimit ishte në të njëjtën faqe me butonat e ruajtjes dhe modifikimit). Por sapo hap dialogun nuk funksionon.

Faleminderit paraprakisht për çdo ndihmë.


Përgjigjet:


1

Ju nuk përmendët një gjë të rëndësishme. Nga ajo që kam, ju po përdorni disa skedarë html. Ndoshta nuk e dini, por jQuery Mobile funksionon pak më ndryshe se faqet e tjera. Kryesisht kur ngarkohet faqja e parë, përmbajtja e saj e plotë do të ngarkohet në DOM (HEAD dhe BODY). Por vetëm BODY do të ngarkohet nga faqet e tjera. Nëse mendoni për këtë është një situatë normale, nëse tashmë ka një HEAD brenda një DOM, nuk ka nevojë që faqet e tjera HEAD-të të ngarkohen.

Në rastin tuaj, nëse javascript juaj është i ndarë midis faqeve tuaja, do të hidhet poshtë (me pjesën tjetër të përmbajtjes HEAD) nëse vendoset brenda një HEAD. Këtu mund të gjeni zgjidhje se si ta rregulloni.

Në rast se i gjithë javascript juaj është vendosur tashmë brenda një skedari të parë HTML, atëherë keni një problem tjetër. Kur lidhni ngjarje në jQuery Mobile, këshillohet ta bëni atë me lidhje të deleguar. Në thelb shikoni kodin tuaj:

$('#confirmButton').on('click', function(){

});

Nëse kjo ngjarje lidhet përpara se ai buton të ngarkohet në DOM, atëherë ai nuk do të funksionojë më pas. Për ta rregulluar këtë, ne duhet të përdorim lidhjen e deleguar, në këtë rast nuk ka rëndësi nëse elementi ekziston / nuk ekziston brenda një DOM sepse ngjarja lidhet me ndonjë element perenet ose dokument edhe më të mirë:

$(document).on('click', '#confirmButton',function(){

});

Nje gje te fundit. Nëse është e mundur, mos përdorni dokument të gatshëm me jQuery Mobile, ndonjëherë ai mund të aktivizohet përpara se faqja të ngarkohet në DOM. Por ka një rregullim. Zhvilluesit e jQuery Mobile kanë krijuar ngjarje faqesh për të kapërcyer këtë problem. Këtu mund të lexoni më shumë rreth tij.

Ka edhe një gjë tjetër, ka 3 lloje butonash jQuery Mobile dhe 2 mënyra për t'i çaktivizuar (jo vetëm një), lexoni më shumë rreth tij këtu.

24.05.2013
  • Faleminderit per ndihmen. E lexova dhe po filloj të kuptoj rrjedhën e punës. Megjithatë, një pyetje, dhe kam një ndjenjë që lidhet me këtë, nëse shtoj një $('#select_id').prop("disabled", true); në këtë lidhje të deleguar nga #confirmButton, çaktivizimi i menysë së lëshimit (menyja e zgjedhjes) nuk ndodh nëse nuk rifreskoj faqen. Pse është kështu? 24.05.2013
  • Kjo është mënyra se si çaktivizoni përzgjedhjen në jQuery Mobile: api.jquerymobile.com/selectmenu/#method- çaktivizo 24.05.2013
  • Faleminderit përsëri për ndihmën. 24.05.2013

  • 2

    Epo, unë e rikrijova problemin tuaj sa më mirë që munda dhe dukej se nuk kisha asnjë problem. Por pas disa ndryshimeve, zbulova një situatë ku nuk mund ta çaktivizoja as butonin.

    Nuk e përdora klasën në butonin e konfirmimit dhe më pas dukej se gjithçka funksionoi. Jepni një ID dhe besoj se duhet zgjidhur.

    <a class="confirm_button" id="confirmButton" href="#" data-role="button" data-rel="back">Confirm</a>
    

    Dhe pastaj në ur js:

    $('#confirmButton').on('click', function(){
       $('.edit_button').removeClass('ui-disabled');
       $('.save_button').addClass('ui-disabled');
    });
    

    Sipas përpjekjeve të mia, kjo duhet të funksionojë tani.

    24.05.2013
  • Faleminderit për ndihmën, por përsëri kam hasur të njëjtat probleme. @Gajotres kishte arsyetimin/zgjidhjen e çështjes. 24.05.2013
  • Ah po, funksionaliteti $(document).on() më erdhi gjithashtu në mendje gjatë testimit, por e hodha atë sapo isha në gjendje të përsërisja problemin tuaj. Mirë se e keni zgjidhur problemin megjithatë. 24.05.2013
  • Materiale të reja

    Masterclass Coroutines: Kapitulli-3: Anulimi i korutinave dhe trajtimi i përjashtimeve.
    Mirë se vini në udhëzuesin gjithëpërfshirës mbi Kotlin Coroutines! Në këtë seri artikujsh, unë do t'ju çoj në një udhëtim magjepsës, duke filluar nga bazat dhe gradualisht duke u thelluar në..

    Faketojeni derisa ta arrini me të dhënat false
    A e gjeni ndonjëherë veten duke ndërtuar një aplikacion të ri dhe keni nevojë për të dhëna testimi që duken dhe duken më realiste ose një grup i madh të dhënash për performancën e ngarkesës...

    Si të përdorni kërkesën API në Python
    Kërkesë API në GitHub për të marrë depot e përdoruesve duke përdorur Python. Në këtë artikull, unë shpjegoj procesin hap pas hapi për të trajtuar një kërkesë API për të marrë të dhëna nga..

    Një udhëzues hap pas hapi për të zotëruar React
    Në këtë artikull, do të mësoni se si të krijoni aplikacionin React, do të mësoni se si funksionon React dhe konceptet thelbësore që duhet të dini për të ndërtuar aplikacione React. Learning..

    AI dhe Psikologjia — Pjesa 2
    Në pjesën 2 të serisë sonë të AI dhe Psikologji ne diskutojmë se si makineritë mbledhin dhe përpunojnë të dhëna për të mësuar emocione dhe ndjenja të ndryshme në mendjen e njeriut, duke ndihmuar..

    Esencialet e punës ditore të kodit tim VS
    Shtesat e mia të preferuara - Git Graph 💹 Kjo shtesë është vërtet e mahnitshme, e përdor përpara se të filloj të punoj për të kontrolluar dy herë ndryshimet dhe degët më të fundit, mund të..

    Pse Python? Zbulimi i fuqisë së gjithanshme të një gjiganti programues
    Në peizazhin gjithnjë në zhvillim të gjuhëve të programimit, Python është shfaqur si një forcë dominuese. Rritja e tij meteorike nuk është rastësi. Joshja e Python qëndron në thjeshtësinë,..