我看了很多相关的问题,我必须要问这完全不同,因为我只看到了一些似乎有关的问题.
我正在通过 JQuery Ajax调用加载整个中间div,我只是希望能够在新的区域上执行一些自动JQuery,如$(document).ready允许在加载DOM时.我读到livequery会这样做,但我认为会有一种内置方式.我正在尝试将一个日期选择器添加到开头的输入字段中.
我正在通过 JQuery Ajax调用加载整个中间div,我只是希望能够在新的区域上执行一些自动JQuery,如$(document).ready允许在加载DOM时.我读到livequery会这样做,但我认为会有一种内置方式.我正在尝试将一个日期选择器添加到开头的输入字段中.
$.post("ReportingWizard",$("#wizard_form").serialize(),function (data) { setData(data); }); function setData(data) { divElement.innerHTML = data; $(activeTab).fadeIn(); //Fade in the active content $(".wizardBody").fadeIn(); }
解决方法
在AJAX函数的回调中注册事件.
如果您正在使用.load()来加载中间div,请将您的jQuery代码直接放在回调中:
$('#middleDiv').load('/fish.PHP',function () { $('#someDiv').fadeIn(300); // ? whatever });
如果您正在使用其他一些AJAX函数,请将jQuery代码放在将元素添加到回调中的DOM的行之后:
jQuery.get('/fish.PHP',function (response) { $('#middleDiv').html(response); $('#someDiv').fadeIn(300); // ? whatever });
如果它是你要绑定的事件,你可能会看一下使用.on()
(或.delegate()
或.live()
,如果你使用的是旧版本的jQuery,这个问题最初是在这个问题时编写的).您可以看到这些不同方法here的比较.
这些方法允许将事件绑定到元素,即使它们尚未存在于DOM中;这意味着您可以绑定$(document).ready()块中的事件,即使这些元素尚未在DOM中注册.