事件没有定义firefox

时间:2012-07-03 06:46:36

标签: javascript javascript-events

  

可能重复:
  Javascript Error in FireFox Not in IE and Chrome

我有一个JavaScript函数,它位于我的Javacaleder.js文件中,用于Calender。  这个日历在IE和Chrome中运行良好但在FF中不起作用。表明  错误控制台中的错误..“未定义事件”它在event.clientX中显示错误;线  以下是功能..非常感谢..  下面的函数就像这样调用......

 objDiv.style.left = GetControlLeftPosition_jScript() + "px";

function GetControlLeftPosition_jScript() {
var controlLeft = event.clientX;
var pageWidth = document.body.clientWidth;
var spaceinRight = parseInt(pageWidth) - parseInt(controlLeft);
if (spaceinRight > 220) {
    return controlLeft
}
else {
    return parseInt(pageWidth) - 220;
}

}

1 个答案:

答案 0 :(得分:1)

用户点击文本框旁边的按钮,然后显示日历。好。按钮的单击处理程序将接收事件对象作为第一个参数。在那里,你有你的事件对象!

检查是否undefined,如果是,您可能正在运行旧版本的IE。在这种情况下,请使用window.event

function buttonClickHandler(event) {
    var eventObj = event || window.event;
    objDiv.style.left = GetControlLeftPosition_jScript(eventObj) + "px";
}

function GetControlLeftPosition_jScript(eventObj) {
   var controlLeft = eventObj.clientX;
   //  ... remaining code.

那就是说,我建议你使用一个抽象这些问题的库,而不是为你提供一个api。像jQuery或Mootools或道场或其他什么东西吸引你的喜好。