AJAX重新加载后,javascript包含的文件消失了

时间:2012-12-17 09:52:26

标签: javascript jquery

我有一个页面,我通过DIV Ajax调用刷新了JQUERY,但是我丢失了我在“head”页面中包含的javascript代码。我需要将它们包括两次吗?在我看来这对性能不利,因为你必须在客户端页面上再次加载javascript。如何包含文件,以便在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>

1 个答案:

答案 0 :(得分: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()