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