我加載通過AJAX的一些內容,並嘗試添加一些功能, 我有這樣的代碼來顯示/隱藏一些內容:新的內容不匹配
$('.list li').hover(
function() { $('.detail').show(); },
function() { $('.detail').hide(); }
);
這部作品第一次加載罰款,但是在通過AJAX加載更多內容時不起作用。 任何想法如何解決它?
我加載通過AJAX的一些內容,並嘗試添加一些功能, 我有這樣的代碼來顯示/隱藏一些內容:新的內容不匹配
$('.list li').hover(
function() { $('.detail').show(); },
function() { $('.detail').hide(); }
);
這部作品第一次加載罰款,但是在通過AJAX加載更多內容時不起作用。 任何想法如何解決它?
使用.on
可以委派事件的.list
元素,所以,添加新的元素li
不會打破預期功能。
$(".list").on("mouseenter mouseleave", "li", function(e){
$(".detail").toggle(e.type === "mouseenter");
});
小提琴:http://jsfiddle.net/NGEfj/
如果.detail
元素是li
內,而不是在自己的其他地方的頁面:
$(".list").on("mouseenter mouseleave", "li", function(e){
$(".detail", this).toggle(e.type === "mouseenter");
});
$('.list')
僅構建當前存在的'.list'項目的列表。
您必須使用on將事件處理程序添加到尚未出現的元素。
你可以這樣做:
$('body').on('mousenter', '.list li', function({ $('.detail').show()});
$('body').on('mouseleave', '.list li', function({ $('.detail').hide()});
對不起,我錯過將li添加到我的選擇器中 – greenbandit
您是否在您的'.list'中添加了其他'li',或者您是否添加了其他'.li st'到你的身體?兩者都易於管理,但做法稍有不同。 –