我正在使用一些jquery来加载页面时隐藏列表元素。当代码是静态的时,它工作正常,但是列表元素是通过php动态生成的,并且在加载页面时并不是全部可用。我试图将.hide附加到load事件,但得到错误,
$('li.views-row')。live不是函数。
代码全部在http://jsfiddle.net/Ypqyv/,但是因为当你点击Run时已经存在html,你看不到错误。 (不,我无法发布到实际站点的链接;它位于防火墙后面的开发服务器上。)
有什么想法吗?我在这里已经阅读了大量关于.live()问题的答案,但它们似乎都不适用于我的情况。
ETA:使用jquery 1.6。
答案 0 :(得分:0)
我不确定您收到错误.live is not a function error
的原因,但是,.live
无论如何都不会在这种情况下发挥作用。
<li>
个元素在创建时不会触发onload
,因此$("li").live("load",handler)
永远不会被触发。
http://w3schools.com/jsref/event_onload.asp
相反,您应该在将其添加到页面的代码之后立即操作列表项。
$.ajax({
url: "...",
data: "...",
type: "...",
success: function(data){
$("<li>"+data+"</li>").hide().appendTo("#myul");
}
});
答案 1 :(得分:0)
检查您正在使用的JQuery版本,.live()仅适用于版本1.3 - 1.8(不推荐使用1.8)我相信并已从版本1.9中删除