it-swarm-eu.dev

Jak lze provést událost body.onload?

Pozadí:

(*) Jsem diletantem JavaScriptu - já jen dabble, když potřebuji.

(*) Mám kus javascriptu, který jsem testoval s falešnou stránkou, kterou jsem načetl pouhým zavoláním z <body onload="..."/>. Dělá to, co tam chci. (Viz https://github.com/cwestin/bobt/blob/master/site/style/article.html a soubor sourozenců http://github.com/cwestin /bobt/blob/master/site/style/bobt.js ).

(*) Chci přidat toto chování při spuštění na můj web Drupal).

Postupoval jsem podle pokynů, jak vytvořit modul Drupal 7 odtud: http://drupal.org/node/361112 .

Zdá se však, že se to zaměřuje na PHP vývoj blokových modulů, které generují obsah. Vše, co mám, je soubor JS, který bude působit na některé třídy div, které vložím do nefiltrovaného HTML značení svého obsahu.

Pokyny pro správu JavaScriptu jsem také našel zde: http://drupal.org/node/756722 .

A hledání na tomto webu našlo tyto pokyny pro zahrnutí JS: Nejlepší způsob, jak zahrnout javascript/jQuery OnLoad na KAŽDOU stránku na mém web . Zdálo se však, že to opravdu neodpovídá na položenou otázku - kterou jsem mohl říct.

Avšak po vytvoření modulu podle těchto neúplných pokynů, jak nejlépe umím, nevypadá, že by se spustila moje JS. Zdroj zobrazení ukazuje, že můj soubor .js je zahrnut na stránkách, ale k jeho transformaci nedochází (fungovalo to na mé falešné testovací stránce). Je možné, že nepřekládám správně do jQuery; Nikdy jsem to nepoužil a syntaxe zjevně není jen obyčejný starý JS.

Zde je modul: https://github.com/cwestin/bobt/tree/master/site/style/sectiontoc . Jak vidíte, v strašidelné function($) thingy, přidám požadované attach(), abych se pokusil přidat své chování k $(document).ready dole. Ale jak jsem řekl, nezačíná to.

Mohl by mi někdo, prosím, sdělit, co mi chybí, nebo co dělám špatně? Předem děkuji za pomoc.

3
Chris Westin

Nejsem si jistý, zda je to nejsprávnější nebo nejelegantnější řešení, ale funguje to pro mě. Používám to k automatickému vyřazování zpráv při načítání stránky.

(function ($) {
        $(document).ready(function() {     
        $("div.messages").delay(10000).fadeOut("slow");
    });})(jQuery)

Používám toto se zenovým podtémem a zahrnuji ho do souboru .info takto:

scripts[] = js/scripts.js

doufám, že to pomůže.

-J

3
rakke

Vložení $ (dokumentu). Již uvnitř přílohy Drupal.behaviors je nadbytečné.

Bod připojení je ten, že se spustí, když je dokument připraven.

3
tim.plunkett