2013-04-22 42 views
0

所以,我終於想出了一個ajax回調不會加載腳本標記之間的頁面內容。我一直在試圖弄清楚如何解決這個問題(這裏沒有jQuery專家)。我讀過那麼多,看着視頻 - 使用.load而不是html的,使用eval,追加,把腳本的頭部....ajax回調和腳本標記

無論如何,這些方法可能會奏效過,但一個我米,是基於視頻我看了工作: [http://www.ajaxvideotutorials.com/V11Videos/jquery_evaluateJavascriptInScriptTagsInAjaxResponse.swf][1]

我用簡單的代碼進行試驗,投入我的大塊之前的代碼。但爲什麼我的代碼在這裏沒有工作?我的應用程序是一個rails應用程序

這是我的ajax代碼,在一個scripts.js文件中。關鍵線路需要注意的是:

$(".page-content .testing").find('script') function(){ 
    alert(eval(value)); 
} 

所有其他Ajax的東西工作的罰款高達那麼 - 這就是我試圖用它來展示什麼是腳本標記之間,在測試類的代碼,這是在頁面的內容

$(document).on("ready", function(){ 

    var ajax_loaded = (function(response) {    

     $(".page-content") 

      .html($(response).filter(".page-content"));    

     $(".page-content .ajax").on("click",ajax_load); 

$(".page-content .testing").find('script') function(){ 
    alert(eval(value)); 
} 
}); 


var form_submit = (function(e) {      
    e.preventDefault();        

    var url = $(this).attr("action");    
    var method = $(this).attr("method");    


    var data = {}         
    $(this).find("input, textarea, select").each(function(i){ 
     var name = $(this).attr("name");    
     var value = $(this).val();     

     data[name] =value;       

    }); 

    $.ajax({           
     "url": url,         
     "type": method,        
     "data": data,        
     "success": ajax_loaded, 
     "error": function() {alert("bad");}   
    }); 
}); 


var history = [];         

var current_url_method;        

var ajax_load = (function(e) {      
    e.preventDefault();        


    history.push(this);        

    var url =$(this).attr("href");     
    var method = $(this).attr("data-method");  

    if (current_url_method != url + method) {  
     current_url_method = url + method;   

     $.ajax({          
      "url": url,        
      "type": method,       
      "success": ajax_loaded,     
     }); 
    } 
}); 

$("#menu a").on("click",ajax_load); 

$("#menu a.main").trigger("click"); 
$(".search-box form").on("submit", form_submit); 
// $("#t_and_c").trigger("click"); 


}); 

在我show.html.erb文件我有:

<div class ='page-content'> 
<div class = "testing"> 

<script type="text/javascript"> 
value=10 
</script> 
</div> 
</div> 

感謝您的幫助!克里斯

回答

0

如果我沒有弄錯,如果你想要任何一個類的元素,他們必須用逗號分隔。如果你想要兩個元素,就不能有空間。

$(".page-content,.testing").find('script') function(){ 
    alert(eval(value)); 
} 

$(".page-content.testing").find('script') function(){ 
    alert(eval(value)); 
} 

http://jsfiddle.net/yatrix/bBBRa/1/