2011-09-28 15 views
6

W jaki sposób chcesz napisać kod HTML do pozycji wywołania funkcji jQuery?Zapisywanie nowego HTML do pozycji wywołującej

Mam na stronie HTML, który zawiera następujący kod jQuery/JS:

... HTML contents ... 
<script> 
    functionName(); 
</script> 
... More HTML Contents... 

Jak mogę functionName do dołączania/pisać nowe treści, gdzie jest nazywany zamiast wybierając inny identyfikator w dokumencie i dołączając po.

JavaScript's document.write może to zrobić, jednak czytałem, że wkręca zdolność jQuery do pracy z DOM później.

Odpowiedz

2

Zainspirowany przez this answer.

Wygląda na to, że skrypty są uruchamiane w kolejności, więc w momencie wywoływania, ostatnim znacznikiem skryptu w tym momencie jest znacznik skryptu, który zawiera to wywołanie.

http://jsfiddle.net/vYPHb/2/

function test() { 
    // get last script tag at the point of calling - useful case of 
    // explicitly NOT using '$(document).ready' :) 

    $("script:last").replaceWith("hacked"); 
} 

HTML:

foo 

<script> 
    test(); 
</script> 

bar 
+0

Wow .. to raczej ummm .. unikalne podejście. [Wydaje się rozsądne] – monksy

+0

@monksy: To było trochę skomplikowane, starałem się, aby było bardziej zwięzłe. – pimvdb

+0

Dzięki. Wygląda to nieco czystsze – monksy

1

To zależy jak document.write jest używany. Jeśli jest używany przed zakończeniem ładowania strony, to jest w porządku, ale powinien zostać użyty po (powiedzmy wyzwolony ze zdarzenia ładowania strony), wtedy umieści dokument w stanie wyjątku (write powoduje, że strumień dokumentów jest Otwórz i zacznij pisać, co spowoduje albo pustą stronę (w IE), albo otwarty dokument, który nigdy się nie kończy, gdy strona ładuje się po raz pierwszy.]

+0

Szczególną funkcją jest obsługa akcji onclick dla zapisywanych treści . – monksy

Powiązane problemy