2011-04-08 4 views
0

메신저 및 jquery 플러그인을 다시로드하기 위해 함수 콜백을 만들려고합니다. 그렇게 할 수있는 적절한 방법은 무엇입니까?jquery 플러그인을 다시로드하는 함수 콜백 jquery/javascript에 새로운

$(function() { 

    var newHash  = "", 
    $mainContent = $("#main-content"), 
    $el; 

    $("nav").delegate("a", "click", function() { 
     window.location.hash = $(this).attr("href"); 
     return false; 
    }); 

    $(window).bind('hashchange', function(){ 
     newHash = window.location.hash.substring(1); 
     if (newHash) { 
      $mainContent 
      .find("#guts") 
      .fadeOut(200, function() { 
       $mainContent.hide().load(newHash + " #guts", function() { 
        $mainContent.fadeIn(200, function() { 
         /*rebind plugin*/ 
        }); 
        $("nav a").removeClass("current"); 
        $("nav a[href="+newHash+"]").addClass("current"); 
       }); 
      }); 
     }; 
    });  

    $(window).trigger('hashchange'); 
}); 
+1

왜 당신이 그것을 다시하고 싶어 CSS 트릭에서 제공하는 예처럼

? 그리고 무슨 플러그인? 일부 예제 코드가 원인을 도울 수 – jlarson

+0

무엇이 콜백을 트리거합니까? 언제 플러그인을 다시로드 하시겠습니까? – moe

+0

그 코드는 jQuery 플러그인을 다시로드하는 것과 아무런 관계가없는 것처럼 보입니다. – Pointy

답변

0

나는 전에이 플러그인을 사용하고 혹시 플러그인으로부터 적용 JQuery와 다음 어떤 CSS-트릭 방법을 사용하는 경우 내가 그런 식으로 나는,

if (newHash) { 
     $mainContent 
      .find("#guts") 
      .fadeOut(200, function() { 
       $mainContent.hide().load(newHash + " #guts", function() { 
        /* load in javascript you want to apply to the new content being loaded */ 
        $mainContent.fadeIn(200, function() { 
        /*rebind plugin*/ 
        }); 
        $("nav a").removeClass("current"); 
        $("nav a[href="+newHash+"]").addClass("current"); 
       }); 
      }); 


    } 

또한로드 기능 내 코드를 추가했다 로드중인 페이지가 이미 실행되어 있어야합니다.

<html> 
    <head> 
     <script jquery.js file here> 
    <body> 
     <div id="wrap"> 
     // the stuff here will loaded to the page retrieving it already spiced up by jquery from the script in the head