所有示例/答案似乎都显示在页面加载时运行部分的javascript。
页面加载时不加载此部分...稍后使用AJAX点击按钮加载。
我试过我的JS
内
$(document).ready(function () {
AND:
$(function(){
AND:
本身
首先根本不会触发。第二和第三似乎触发第二页加载。我假设因为我的js影响的div将存在。那么如何在部分加载 ..
时运行它答案 0 :(得分:3)
$(document).ready(function () {
...
});
将在页面加载时触发(更具体地说,$(document).ready连接到document.DOMContentLoaded或window.loaded事件)但是因为您使用ajax加载Partial,所以当部分加载时页面加载事件已被触发装了。
如果您使用jQuery通过ajax加载部分页面,我建议您从
调用您的函数$ajax(...
}).done(function ( data ) {
yourFunction();
});
或者如果您使用AjaxHelper类(例如使用razor @ Ajax.ActionLink(...)),则使用其AjaxOption的OnSuccess或OnComplete属性连接您的javascript函数。喜欢以下方式:
@Ajax.ActionLink("Load partial", "MyPartialAction", new AjaxOptions
{
UpdateTargetId="partialContainer",
OnSuccess="partialLoaded"
}
此代码将从MyPartialAction操作返回的Partial加载到具有“partialContainer”id的标记中,并在Partial加载了名为partialLoaded的javascript函数之后。
答案 1 :(得分:2)
如果要在部分加载时使其运行,请在发出部分请求的回调中执行此操作。如果此请求发布者是Jquery,则它将类似于以下内容:
$.get(url, function (result) {
// Do whatever you want here in the success callback.
});
如果您正在使用MVC帮助器方法(如Ajax.ActionLink)执行某些操作,则可以指定一个jquery函数来调用响应
@Ajax.ActionLink("NameOfLink", "ControllerAction", new AjaxOptions
{
HttpMethod = "GET",
OnSuccess = "javascriptFunction(data)"
})
function javascriptFunction(data) {
// Do whatever you want
}