通常,這會努力消除未來破碎的形象..如何使用jQuery
$("img").error(function(){$(this).hide();});
但它把現場上
$("img").live("error",function(){$(this).hide();});
問題時不工作是,對於那些圖像這是阿賈克斯生成的,我不能隱藏破碎的圖像。
通常,這會努力消除未來破碎的形象..如何使用jQuery
$("img").error(function(){$(this).hide();});
但它把現場上
$("img").live("error",function(){$(this).hide();});
問題時不工作是,對於那些圖像這是阿賈克斯生成的,我不能隱藏破碎的圖像。
爲您添加圖像到DOM您可以添加事件處理程序:
$.get(urlHere, function(htmlData) {
var output = $(htmlData).find('img').error(function() {$(this).hide();}).end();
$(<selector>).html(output);
});
這裏是一個演示:http://jsfiddle.net/3nXcS/2/
更新
當你console.log()
的e.bubbles
變量它返回false
。所以你不能使用需要冒泡的綁定方法(.delegate()
,.live()
)。
的$("img").live
方法應該工作,如果不是你可以嘗試livequery
(Livequery)
嘗試,
$("img").livequery('error', function(){$(this).hide();})
它仍然沒有工作..我試圖把一個警報jsut知道它是否觸發,但沒有警報發生.. – lidongghon
這隻會輸出'img'元素。 'htmlData'中的任何其他元素都將丟失。改爲使用它:'var output = $(htmlData); output.filter('img')。error(function(){$(this).hide();}); $().html(輸出);'。無論如何,我認爲這正是OP想要避免的。 –
@JosephSilber良好的捕獲,我添加了'.end()'到jQuery鏈的末尾來返回父選擇器。這種方法的好處是它只將事件綁定到必要的元素上,不需要冒泡,這是性能優勢。 – Jasper
好吧,無論您是否附加了事件處理程序,都會發生事件冒泡......事實上,我認爲在這種特殊情況下,「live」對於性能會更好,因爲您只綁定1個元素上的事件處理程序(「 document')。 –