我有以下问题。我正在尝试使用jQuery加载一组标签加载。 当我获得新内容(通过POST)时,tabs()函数中止并且不构建 标签。我正在使用这个功能:
$(document).ready(function() {
var array_with_alias_id = $.getJSON("/getAliasForMatchAll/", null,
function (data){
array = data.aliases_id;
load(array);
});
$("#next_left").click(function(){next_left()});
//load(array_with_alias_id);
});
function next_left(){
if(j >= array.length-1){
var l = j
} else {
var l = j+=1;
}
$("#alias_id_left").val(list_left[l]);
$("#merge_alias_id_left").val(list_left[l]);
$.post("/visor/",{"alias_id":list_left[l],"position":"L"},
function(data){
$("#tabsL").html(data).ready(function(){
$("#tabsL").tabs();
});
});
}
我认为我的问题是ajax问题而且我已经读过这个[0], 但我不能给出解决方案。 函数next_left()只能运行一次。我认为该文件为 这个功能准备好了,但是当我加载标签时它不起作用 (我认为选项卡调用方法中止,因为如果我用firebug看到html 它改变了,但不是全部。)
有任何线索吗?
[0] http://docs.jquery.com/Tutorials:AJAX_and_Events
答案 0 :(得分:1)
尝试替换 $(“#next_left”)。点击(function(){next_left()}); :
$("#next_left").live('click', function(){next_left()});
答案 1 :(得分:0)
IRC的人帮助了我。 我现在已经将.POST之后的函数更改为:
function next_left(){
if(j >= array.length-1) {
var l = j
}
else {
var l = j+=1;
}
$("#alias_id_left").val(list_left[l]);
$("#merge_alias_id_left").val(list_left[l]);
$.post("/visor/",{"alias_id":list_left[l],"position":"L"},
function(data) {
$("#tabsL").html(data).tabs("destroy").tabs();
});
}
他们正确地告诉我,ready函数适用于文档,并且不能用于我如何使用它。我希望我在这里发布的固定代码可以帮助其他人。