使用delegate()或live()加载jQuery UI?

时间:2010-12-23 14:11:17

标签: jquery jquery-ui

我正在使用.load()将我网站中的其他网页加载到div。有没有办法在新加载的页面上添加jquery ui增强功能?我在考虑使用.delegate().live(),但无法弄清楚将它们绑定到哪个事件?或者有更好的方法吗?

3 个答案:

答案 0 :(得分:2)

你可以使用jQuery的ajax函数提供的回调函数 - 对于load(),语法看起来像:

$('#ele').load('somewhere #newEle', function(){
    $(this).find('#newEle').slider();
});

或者,查看全局ajax事件,例如ajaxSuccess或使用扩展jQuery现有ajax函数的插件,其功能类似于您需要的功能,例如:http://www.protofunc.com/scripts/jquery/ajaxManager/

答案 1 :(得分:1)

您希望在complete回调中使用jQuery UI代码。见the API。例如:

$('#myDiv').load('/some/page.html', function() {
    // jQuery UI hotness here
});

答案 2 :(得分:0)

您应该使用委托将事件绑定到要加载内容的div,因此如果您的div的id为somediv,那么您可以像这样绑定它们...

$('#somediv').delegate('a', 'click', function() {

})
.delegate('input', 'focusin', function() {

})
.delegate('li', 'click', function() {

});

这些显然只是组成了一些例子......但你可以像这样链接你的处理程序并将它们绑定到你的内容加载div。

享受:)