2012-12-17 89 views
1

我有一個頁面,我通過JQUERY Ajax調用來刷新DIV,但之後我丟失了包含在「head」頁面中的javascript代碼。我需要包含兩次嗎?在我看來,這不利於性能,因爲您已經在客戶端頁面上時再次加載javascript。如何包括文件,以便它們也可阿賈克斯後刷新包含AJAX的文件在AJAX重新加載後消失

$(document).ready(function() { 
    $("#prijzen_huidige_jaar").submit(function(event) {  
    /* stop form from submitting normally */  
    event.preventDefault();  
    $.ajax({ 
    type:"POST", 
    url:"prijzen_huidige_jaar_test.php", 
    cache: false,     
    data: $("#prijzen_huidige_jaar").serialize(), 
    success:function(data){ 
     $("#test").replaceWith(data); 
    }  
}); 
}); 
}); 

包括主頁:

<script type="text/javascript" src="https://localhost/include_bestanden/javascript/prijzen.js"></script> 
+2

您可以發佈所有的代碼嗎? JavaScript和HTML都是這樣,我們可以更好地幫助你。 –

+0

奇怪!愛看你的jQuery。 – Jai

+0

添加了jQuery的Ajax調用,相當於代碼是有點多.... –

回答

2

而不是使用您的JS click的,你應該使用on與類標識符,因爲這將適用於稍後通過AJAX添加的元素。

所以不是:

$("input[name$='vraag_afwijkende_prijzen']").click(function(){   
    if($(this).val() == 1){ 
     $("#instructie_afw_prijzen_tekst").html(vraag4_ja); 
     $("#afwijkende_prijzen_vak").show('slow'); 
     $("#afwijkend_1").show('slow'); 
    } 
    //etc 

試着這麼做:

$(document).on("click", ".vragen-radio", function() { 
    if ($(this).attr("name") == 'vraag_afwijkende_prijzen' && $(this).val() == 1) { 
     $("#instructie_afw_prijzen_tekst").html(vraag4_ja); 
     $("#afwijkende_prijzen_vak").show('slow'); 
     $("#afwijkend_1").show('slow'); 
    } 
    //etc 

您可以在這個問題上讀到它:Why use jQuery on() instead of click()

+0

是啊!這工作!我還有其他一些奇怪的行爲,如果我第二次提交,比他加載完整的其他頁面。在調整之前,它也在那裏,你知道爲什麼嗎? –

+0

也許是因爲問題中提到的Jquery函數有同樣的問題? AJAX後不包含在DIV中?看起來像,我測試了它,整個功能不會在第二次提交後執行... –

+0

是的!以同樣的方式完成了這項工作! –