Mazání atributu onclick, zprovoznění jQuery UI

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Mazání atributu onclick, zprovoznění jQuery UI

Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  Viktor Ježek a poslední změna je stará 8 let.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)
  • Autor
    Příspěvky
  • #28187

    Viktor Ježek
    Participant
    Web

    Zdravím,
    mám hned dva dotazy, ale abych zbytečně nezakládal témata sloučím je do jednoho.

    DOTAZ 1
    Používám na svém webu javascript pro zobrazování a schovávání obsahu.

    Při vytváření/editaci stránky v HTML editoru použiju například <button onclick="schov('neco1'); ukaz('neco2');">text</button>, když to uložím, tak je vše v pořádku. Jenže pak když přepnu do Visual editoru a provedu nějakou změnu a znovu uložím, tak se ten onclick atribut ztratí. Snad jsem to napsal, tak aby se to dalo pochopit.

    Neví někdo, jak wordpressu zakázat, aby onclick automaticky mazal?

    Na ukázku použití se můžete podívat zde a na ukázku definice funkce a HTML kód zase zde a zde.

    DOTAZ 2&
    Můj druhý dotaz se týká jQuery UI. Chtěl jsem si na své WP stránky dát jQuery dialog, ale když jsem si zkopíroval do hlavičky šablony tagy scrip a link z jqueryui.com a pak si nadefinoval dialog na stránce a tu následně zobrazil ve webovém prohlížeči, tak mi to nefungovalo. Neví někdo jak to zprovoznit?

    Díky za jakoukoliv odpověď.

    #28191

    Viktor Ježek
    Participant
    Web

    Tady ještě ukázka použití toho nefunkčního jquery UI dialogu:

    jQuery Dialog

    Tady je js soubor, kde mám dialog definovaný: https://www.avonhluk.eu/wp-content/themes/twentyfifteen-child/javascript.js

    A ukázka zdrojového kódu, kde jsou implementovaný jQuery css a js soubory je v přiloženém souboru.

    Attachments:
    #28204

    sjiamnocna
    Participant
    Web

    @1 Editor je od toho, aby upravoval texty. Jestliže použijete nějaké přímé úpravy v okolí toho onClicku, přepíše si svůj vlastní kód.
    Taky by to mohlo být možností “WordPress by se měl pokusit automaticky opravit nevalidní XHTML” v nastavení, protože použití onClicku v textu v současnosti podle mne nevalidní je :)

    Zkuste využít toho, že máte po ruce jQuery a připište tam misto onclicku třídu class, kterou potom rozpohybujte na kliknutí;

    <button class="click">Sezame otevři se</button>
    <script>
    jQuery('button.click').click(function(){
    schov(0);
    ukaz(1);
    });
    </script>

    Radši pojďme dále k bodu 2, pač tomuhle nějak nerozumím
    @2 Skript z JQuery jste zkopíroval asi špatně, resp. vkládáte odkaz na skript z googleapis, který má možnost zabezpečené komunikace přes HTTPS pouze s HTTP:// – přidejte tam to S a bude to vpohodě
    – to mi řekl firefox ;)
    <script type='text/javascript' src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.6/jquery-ui.min.js?ver=1.8.6'></script>

    Možná ještě lépe, do WordPressu nic nenahrávejte z externích zdrojů (google,jquery ap.) a vyřešte to jako chlap, načtením již připravených zdrojů z WordPressu pomocí WP_ENQUEUE_SCRIPT:

    
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_script('jquery-ui-dialog')

    BTW. nevím, zda používáte jinou formu jQuery, ale nevím o žádné komponentě infobox. Vždy jsem volal buď $.dialog anebo $.tooltip – snad to pomůže…

    #28205

    sjiamnocna
    Participant
    Web

    P. S.: Na skrývání a odkrývání také doporučuji používat jQuery. Moc si tím usnadíte;

    //schovej
    $('.prvek').hide();
    //zobraz
    $('.prvek').show();

    Pokud chcete něco univerzálnějšího, případně s animací, zkuste toggleClass() nebo slideToggle();

    toggleClass – nadefinujete si třídu pro viditelnost (nebo skrytost přirozeně) a pomocí toggleClass tuto třídu přidáváte/odebíráte (provede se automaticky – pokud třída je, odebere se, pokud není přidá se)

    <a class="ukaz">Přepni</a>
    <div class="to skryto">blablabla</div>
    <style>
    .skryto{
    display:none;
    }
    </style>
    <script>
    jQuery('.ukaz').click(function(){
    jQuery('.to').toggleClass('skryto');
    });
    </script>

    Pokud se o nic nechcete starat, stačí použít slideToggle – pokud je prvek viditelný, s animací se skryje. Pokud není, s animací se ukáže;

    <a>Přepni</a>
    <div class="to" style="display:none;">blablabla</div>
    <script>
    jQuuery('.ukazto').click(function(){
    jQuery('.to').slideToggle();
    });
    </script>
    #28206

    Viktor Ježek
    Participant
    Web

    Díky za upozornění na chybu v souboru javascript.js. Nicméně ani použití wp_enqueue_script, ani opravení chyby dialog na testovací stránce nerozchodí. Možnost „WordPress by se měl pokusit automaticky opravit nevalidní XHTML“ mám vypnutou. Ta varianta skrývání a zobrazování přes jQuery mi chvilku fungovala, ale teď už nefunguje. No nic každopádně děkuji za radu. Nějak to zkusím vykoumat.

    EDIT:

    Vypadá to, že to nechce spolupracovat se souborem javascript.js, protože když si definici stylu i definici té funkce dám přímo do html kódu příspěvku, tak to funguje.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.