如何做同样的循环动作?谢谢。
$('a.level').click(function() {
var level = $(this).parent('li').attr("class");
var nxvl = parseInt(level)+1;
var dir = $(this).html();
var curr = $(this);
var data = new Object();
data.n = new Date().getTime();
data.act = "getdirectory";
data.level = level;
data.direct = dir;
var str = $.toJSON(data);
$.post('ajax.php', { str: str }, function(result){
var data = eval('('+obj.data+')');
var html = [];
$.each(data, function(key, value) {
html[key] = "<li class='"+nxvl+"'><a href='javascript:void(0);' title='' class='level'>"+eval(value)+"</a><ul></ul></li>";
});
$(curr).next('ul').html(html.join(""));
$('a.level').click(function() {
// do the same action
}
});
return(false);
});
答案 0 :(得分:3)
在这种情况下,您可能希望使用实时处理程序。改变你的外表:
$('a.level').click(function() {
...
}
要:
$('a.level').live('click', function() {
...
}
然后,在$(curr).next('ul').html(...)
答案 1 :(得分:0)
尝试将函数逻辑移出匿名函数并进入命名函数。
所以而不是:
$('element').click(function(){ /* logic */ });
你会:
function myFunc() { /* logic */ }
$('element').click(myFunc);
这样,在函数中你可以再次调用函数,或者在你的情况下,将它附加到你刚刚创建的另一个元素。