Цикл jquery на странице, загруженной ajax с хешем - PullRequest
0 голосов
/ 02 апреля 2012

Я использую ajax для загрузки контента из других html-документов в div #content - тогда URL становится mydomain / index.html # user1.Каждый HTML-документ «пользователя» имеет слайд-шоу цикла jquery.Если я смотрю на страницу пользователя независимо (не загружается через ajax), слайд-шоу работает нормально.Если я смотрю на страницу пользователя, загруженную с помощью ajax на странице индекса, слайд-шоу не работает.

Я вызываю jquery и цикл из индекса, вот что у меня вверху:

<script type="text/javascript">
$(document).ready(function() {

// slideshow
$('#slideshow').cycle({ 
    fx:     'fade', 
    prev:   '#prev', 
    next:   '#next', 
    timeout: 0 
});
// Check for hash value in URL  
    var hash = window.location.hash.substr(1);
    var href = $('.thumbgroup div a').each(function(){
        var href = $(this).attr('href');
        if(hash==href.substr(0,href.length-5)){
            var toLoad = hash+'.html #content';
            $('#content').load(toLoad)
        }                                           
    });

// project-links
$('.thumbgroup div a').click(function(){
        var toLoad = $(this).attr('href')+' #content';
        $('#content').hide('fast',loadContent);
        $('#load').remove();
        $('#header').append('<span id="load">LOADING...</span>');
        $('#load').fadeIn('normal');
        window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5);
        function loadContent() {
            $('#content').load(toLoad,'',showNewContent())
        }
        function showNewContent() {
            $('#content').show('normal',hideLoader());

        }
        function hideLoader() {
            $('#load').fadeOut('normal');
        }
        return false;
    });
});
</script>

Я пробовал цикл вызова с загруженной страницы, и он все еще не работает.Я был бы очень признателен, если бы у кого-нибудь были идеи для этого новичка!спасибо!

1 Ответ

0 голосов
/ 02 апреля 2012

убедитесь, что ваш javascript, который используется для слайд-шоу, загружается или нет. Если нет, попробуйте сделать это до загрузки содержимого.

  var script=document.createElement('script');
  script.type='text/javascript';
  path = {locate your js files}
  script.src= path+'jquery.js'; 
  $("body").append(script); 
...