我试图将处理程序应用于iframe中的所有元素(位于同一个域中),但我无法弄清楚为什么函数只会在点击时触发。我担心这可能与iframe只在我点击它时才有效这一事实有关。我已经在jsfiddle中看到了这个应用程序,例如http://jsfiddle.net/danmana/pMBw2/
这基本上是我的代码(我尝试使用委托函数模仿jsfiddle并得到相同的结果):
$('iframe').contents().on("mouseover", "*", function() {
$(this).css("background-color", "yellow");
});
修改 使用那个jsfiddle(http://jsfiddle.net/danmana/pMBw2/)我发现如果你把它切换到jquery 2.1.0的最新版本,那么代码不再有效,看起来1.8.3是最新的代码。
答案 0 :(得分:0)
模仿你提到的jsfiddle应该可以正常工作,你必须使用delegate()
函数:
<iframe src="http://fiddle.jshell.net"></iframe>
var $c = $('iframe').contents();
$c.delegate('div', "hover", function() {
$(this).css("background-color", "yellow");
});
答案 1 :(得分:-1)
这对我有用 -
var $c = $('iframe').contents();
$c.delegate('div', 'hover', function() {
$(this).css("background-color", "yellow");
});