Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX, jQuery] Problem z wywołaniem JS z załadowanej przez AJAX treści
trol
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.04.2009

Ostrzeżenie: (0%)
-----


Witam,
od już kilkunastu prawie godzin walczę z czymś, mam na dzieję banalnym i nie mogę za sobie z tym poradzić. Otóż:

Mam stronę HTML:
[...]
<ul>
<li> tresc pierwotna, która potrafi wywołać funkcję </li>
<li> inna tresc pierwotna, która potrafi wywołać funkcję </li>
</ul>
<a href='#'>Wywołuje AJAX</a>
[...]
Mój kod jQuery obsługuje kliknięcie na zawartość każdego taga <li></li> i to działa bez zarzutu (wywołuje inną fukncję jQuery, która coś tam sobie robi). Natomiast jeżeli wywołam działanie AJAX`a poprzez kliknięcie na link "Wywołuję AJAX", które usuwa dotychczasowe tagi <li></li> wewnątrz tagu <ul> </ul> i wprowadza tam nowe tagi <li></li> np. <li> zawartość zwrócona przez AJAX</li> to te nowe tagi zdają się być "odporne" na moje klikania - nie chcą wcale współpracować z kodem jQuery.

// Moje kombinowania //
wstawiłem do index kod js

function triggerRightMenu()
{
alert('test');
}

a wstawiane przez ajaxa tagi wzbogaciłem o coś takiego <li><a href='#' onclick='triggerRightMenu()'> tresc AJAX`owa</a> </li>. Niestety alert się nie wywołuje...
Natomiast w sytuacji kiedy AJAX zwraca <li><a href='#' onclick='alert('test');'> teraz tutaj alert działa </a> </li>. Nie trudno się wobec tego skapnąć, że załadowana treść AJAXA "nie widzi" kodu z pozostałej strony. Schematycznie ujmując

| cała strona
|
| kod jQuery (...) - 1
|
| |załadowana treść Ajax
| |
| | tutaj kod z 1 nie obsługuje tagów
|

Mam nadzieję, że czytelnie wyraziłem mój problem. Gorąco proszę o pomoc.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
trol
post
Post #2





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 25.04.2009

Ostrzeżenie: (0%)
-----


cały kod jQuery:
(function($) {
$(function() {
$('#content').fadeIn(400);

/*
* Left menu all action
*/
$('#leftMenu h1').click(function() {
$('#leftMenu ul').slideToggle(150);
});

$('#leftMenu a').click(function(){
var leftMenuIndex = $(this).attr('tabindex');
$('#leftMenu ul').fadeOut(150);
var newValue = $(this).text();
$('#leftMenu h1').text(newValue);
$('#rightMenu h1').text('--- SELECT ---');
//$('#contentBox').fadeOut(300);
$('#rightMenu ul').fadeOut(300, function() {
$('#rightMenu a').remove();
$('#rightMenu li').remove();
$.ajax({
type: 'get',
url: 'fragment.php',
data: 'leftMenuIndex='+ leftMenuIndex,
success: function(returnValue) {
$(returnValue).appendTo('#rightMenu ul').fadeIn(300);
}
}); // end ajax
});
}); // end of #feftMenu a click


/*
* Right menu all action
*/
function triggerRightMenu()
{
alert('test');
}

$('#rightMenu h1').click(function() {
$('#rightMenu ul').slideToggle(150);
});

$('#rightMenu a').click(function() {
var rightMenuIndex = $(this).attr('tabindex');
$('#rightMenu ul').fadeOut(150);
var newValue = $(this).text();
$('#rightMenu h1').text(newValue);
$('#conBox').fadeIn(300);
$('#content').fadeOut(300, function() {
$(this).remove();
$.ajax({
type: 'get',
url: 'fragment.php',
data: 'rightMenuIndex='+ rightMenuIndex,
success: function(returnValue) {
$('<div id = "content">' + returnValue + '</div>').appendTo('#contentBox').fadeIn(300);
}
}); // end ajax
});
}); // end of #rightMenu a click



});
})(jQuery);


generowanie odpowiedzi z pliku fragment.php
(działam z biblioteką Smarty, więc wklejam szablon). -- tutaj myślę, że jest ok, - sprawdzam odpowiedź w firebug`u i wygląda dobrze.
{foreach from=$pagesInfo key='index' item 'pageInfo}|
<li><a href='#' tabindex='{pageInfo.id}'>{$pageInfo.title}</a></li>
{/foreach}

strona główna
mam problemy z ładnym wyświetleniem html`a więc tutaj jest treść strony głównej

Ten post edytował trol 25.04.2009, 18:45:50
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.09.2025 - 04:09