我有两个框架:一个是父级,另一个是孩子。
从子页面我想附加一个eventHandler。我无法运行代码。永远不会调用eventHandler中的代码。如果我引用子页面上的元素,那么代码可以正常工作。
通过将bg颜色更改为代码中所需的元素来确保我正确引用父级中的元素(这很有效。)(参见下面的代码)
var drop = $('#alignmentBox', window.parent.document);
drop.css("background-color",'#80BFFF');
我并没有真正看到firebug中的任何错误,只是因为没有调用eventHandler中的代码。
这是eventHandler
// Tells the browser that we *can* drop on this target
addEventHandler(drop, 'dragover', function (e) {
e = e || window.event; // get window.event if e argument missing (in IE)
if (e.preventDefault) {
e.preventDefault();
}
fileNumber = fileNumber + 1;
//drop.innerHTML = fileNumber;
$("#drop1").css('opacity', 0.5);
$("#drop1").css("background-color",'#80BFFF');
var newFile = $('#s-d12245cc-1680-458d-89dd-4f0d7fb22724', window.parent.document)[0];
newFile.css("background-color",'#80BF55');
return false;
});
/seperate event
function addEventHandler(obj, evt, handler) {
if (obj.addEventListener) {
// W3C method
obj.addEventListener(evt, handler, false);
} else if (obj.attachEvent) {
// IE method.
obj.attachEvent('on' + evt, handler);
} else {
// Old school method.
obj['on' + evt] = handler;
}
}
答案 0 :(得分:0)
您正在尝试在您创建的addEventListener
的jquery对象上使用本机drop
。您可以通过向其添加[0]
来获取jQuery对象中的DOM元素
尝试:
addEventHandler(drop[0], 'dragover', function (e) {