Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery html将页面替换为$(document).ready代码_Jquery - Fatal编程技术网

jquery html将页面替换为$(document).ready代码

jquery html将页面替换为$(document).ready代码,jquery,Jquery,我正在使用jquery替换我站点中的html。正在插入的HTML在页面底部有一个“$(document).ready”函数。当html被替换时,该代码不会运行。我想这是有道理的,因为整个页面实际上没有加载。它只是在取代HTML。确保此代码运行的最佳方法是什么? 以下是执行替换操作的代码: function procView(url, e) { var data = $('.checkout form').serialize(); $.ajax({ url: '/S

我正在使用jquery替换我站点中的html。正在插入的HTML在页面底部有一个“$(document).ready”函数。当html被替换时,该代码不会运行。我想这是有道理的,因为整个页面实际上没有加载。它只是在取代HTML。确保此代码运行的最佳方法是什么? 以下是执行替换操作的代码:

function procView(url, e) {
    var data = $('.checkout form').serialize();
    $.ajax({
        url: '/Shop/' + url,
        data: data,
        success: function (result) {
            $('.rightPane').html(result);
            $('#dvSummary').load('/Shop/_summary');
            validateCC();
        },
        error: function (result) {
            alert(result.responseText);
        }
    });
}
它是.html(结果)行。如果重要的话,我使用的是asp.net MVC5

下面是带有validateCC()函数的document.ready代码:

$(document).ready(function () {
            alert("out of the function!");
            //$.validator.setDefaults({ ignore: ":hidden, .data-val-ignore" });
            function validateCC() {
                alert("in the function!");
                $('#CardNum').validateCreditCard(function (result) {
                    $("#CardNum").attr('class', 'data-val-ignore');
                    if (result.card_type != null) {
                        $("#CardNum").addClass(result.card_type.name);
                    }
                    if (result.card_type != null && $("#CardNum").val().length == result.card_type.valid_length) {
                        $("#CardNum").addClass("valid");
                    }
                },
                { accept: ['visa', 'mastercard', 'amex', 'discover'] });
            }
        });

这两个警报都不适用于我。事实上,我得到了:“ReferenceError:validateCC未定义”。

使用Ajax函数,您知道什么时候正确执行了某些内容,因此,一旦使用
.html()
函数加载了内容,您就可以简单地调用要执行的函数

假设您在第二份文档中有:

<div class="test">Hello</div>
<script>
    function doSomething() {
        $(document).find(".test").text("Hello World");
    }
</script>

老实说,我不确定这是否100%有效,但您可以尝试。

尝试在另一个代码中放置
控制台。日志
警报
。是的,在函数开头放置
警报有什么问题?尝试过了。这是行不通的。我将把我的函数加在上面。请问
结果
变量包含什么?如果你把它的内容打印出来,你会得到什么?内容是否加载到您的
$('.rightPane')
中?内容确实会加载到rightPane中。结果是一堆html,在“脚本”部分的底部有一些javascript并简单地定义函数?因此我了解到不能在部分页面中粘贴“部分”。所以这就是代码没有运行的原因。我该怎么做?
success: function (result) {
    $('.rightPane').html(result);
    $('#dvSummary').load('/Shop/_summary');
    doSomething();
}