标签: javascript-events

IE中的事件处理

我有下面的代码,允许我在用户第一次将鼠标悬停在元素上然后删除事件时执行某些操作.

它在W3C事件模型浏览器中运行良好,但在IE6-8中不断抛出错误.我从另一个问题得到了代码,并相信它会处理IE.有谁看到我做错了什么?

    <script type="text/javascript">
    function setMouseEvent() {
        //Tel: 01 8279 400
        event = addEvent(document.getElementById('contactButton'), 'mouseover', changeText);
    }

    function changeText() {
        alert("worked!");
        removeEvent(document.getElementById('contactButton'), 'mouseover', changeText);
    }

    function addEvent(obj, type, fn) {
        if (typeof obj.addEventListener != undefined) {
            obj.addEventListener(type, fn, false);
        }
        else if (typeof obj.attachEvent != undefined) {
            obj.attachEvent("on" + type, fn);
        }
    }

    function removeEvent(obj, type, fn) {
        if (typeof obj.addEventListener != undefined) {
            obj.removeEventListener(type, fn, false);
        }
        else if (typeof obj.attachEvent != undefined) {
            obj.detachEvent("on" + type, obj[type + …
Run Code Online (Sandbox Code Playgroud)

javascript event-handling javascript-events

2
推荐指数
1
解决办法
2589
查看次数

Date(dateString)在FF中返回无效日期

该页面在Chrome中工作正常,但我在FF中有一个小错误,在IE中有一个不同的问题.非常感谢对这些问题中的任何一个提供帮助.由于我在FF错误中被遗忘的时间最长,我将从那个开始:

这是代码:http: //truxmapper.appspot.com/sched.html

日期选择器使用"07-08-2010 23:28"格式选择日期.现在,我需要将此时间作为参数传递给我的servlet,这需要时间表示为long.这在chrome中不是问题.Date对象接受上面给出的格式的字符串,但是当我尝试在用FF中的字符串实例化的日期上使用getTime()时,它返回NaN.所以我在我链接到的页面上所做的是稍微处理,要求用户重新输入日期,如果它读为NaN.这显然甚至不是一个bandaid解决方案,因为即使你重新输入日期仍然会读取NaN.我需要知道为什么Date函数不会使用你在FF中的输入文本字段中看到的字符串进行实例化.

在IE中,由于某种原因它告诉我sTime是未定义的.

谢谢!

html javascript javascript-events

2
推荐指数
1
解决办法
3140
查看次数

image.Onload无法完成图像

这真让我抓狂.

我需要在Javascript中加载一组图像,但我想确保在开始绘制之前加载所有图像.所以,我忙 - 等待每个图像onLoad事件被调用.首先,我创建图像并设置它们的源和onload函数:

// Load images from names
for (i = 0; i < this.nImages; i++) {
    this.imagesArray[i] = new Image();
    this.imagesArray[i].onload = this.onLoad(i);
    this.imagesArray[i].src = images[i];
}
Run Code Online (Sandbox Code Playgroud)

这是onLoad函数,我正在开发的类的成员(前两个步骤在构造函数中):

MyClass.prototype.onLoad = function (nimage) {
    console.log ("Image completed? ", nimage, " ", this.imagesArray[nimage].complete);
    this.imagesLoaded++;
Run Code Online (Sandbox Code Playgroud)

}

然后我忙等待所有的onLoad函数来递增计数器(再次,在构造函数中):

while (this.imagesLoaded < this.nImages) {
    // This is busy wait, and I don't like it.
    continue;
}
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.但是当我尝试用我的drawClass在HTMl5画布上绘制时:

MyClass.prototype.refresh = function () {

    // Gets one of the images in the range    
    var imageNum …
Run Code Online (Sandbox Code Playgroud)

javascript canvas image javascript-events

2
推荐指数
1
解决办法
4318
查看次数

使用jQuery选择DropDownlist时如何防止AutoPostBack

我想在用户选择DropDownList中的项目时显示确认对话框.如果用户按"取消",我想停止回发.这是我添加到onchange事件的函数:

function imitateConfirmUnload(event) {
    if (window.onbeforeunload = null)
        return true;

    return confirm("Are you sure you want to navigate away from this page?\n\nYou have unsaved changes\n\nPress OK to continue or Cancel to stay on the current page.");
}
Run Code Online (Sandbox Code Playgroud)

这是我的启动脚本中的相关代码,用于将处理程序添加到事件中:

function addConfirmToWarnClasses() {

    $('.warn').change(function() {
        imitateConfirmUnload()
    });
}
Run Code Online (Sandbox Code Playgroud)

问题是即使用户选择"取消",也会发生回发.如果我将处理程序移动到click事件,它就可以工作.但它对我来说很笨拙.

编辑

更正:它不起作用,因为对话框阻止选择,因此当用户选择"确定"时,没有发生任何更改,并且在您需要时不会回发!

编辑2

DropDownList位于UpdatePanel内部,因此可能会影响行为.

asp.net jquery javascript-events

2
推荐指数
1
解决办法
1万
查看次数

在JavaScript中测试undefined

我只想在argument[0].recordCount大于零或未定义的情况下运行代码.但是,当argument[0].recordCound警报显示未定义时,代码将运行.

if(arguments[0].recordCount > 0 && 
   arguments[0].recordCount !== 'undefined')
{ //if more than 0 records show in bar

    document.getElementById('totalRecords').innerHTML = 
       arguments[0].recordCount + " Records";
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能在这里测试undefined?

javascript javascript-events

2
推荐指数
1
解决办法
1473
查看次数

将Javascript事件附加到加载AJAX的搜索结果列表的最佳方法是什么?

我有一个加载结果的搜索页面.每行旁边都有一个"删除"按钮,我想使用特定于该行的一些参数在我的页面上触发特定的Javascript函数.

最好是将函数调用直接放入生成的HTML中,例如,onclick="deleteFunc(<params from results array>);"还是应该附加jQuery click事件?我一直在选择后者,但在这种情况下,我不确定最好的方法.

我可以以某种方式将事件附加到某些HTML,即使它尚未添加到页面中吗?如果没有,我将不得不将所有结果添加到页面,包括搜索结果中每行的数组索引,然后将click事件附加到按钮,同时使用我存储的索引从原始数组访问该行的参数隐藏的HTML字段.这似乎是很多工作重新关联所有内容,当我有一个点,我构建HTML,其中我有所有特定行删除按钮所需的参数.

假设我使用jQuery的click事件,是否有内存耗尽的危险?我可能会有一千行回来.如果是这样,当内存耗尽时会发生什么?

另一种选择是将每个数组行的JSON序列化为删除按钮旁边的隐藏字段,然后我可以检索该字段.看起来这样会更有效,但也看起来很难看.

javascript ajax jquery javascript-events

2
推荐指数
1
解决办法
703
查看次数

JavaScript无法在Google Chrome中使用

是什么原因导致某些JavaScript功能无法在Google Chrome中运行,但在Mozilla Firefox中运行良好?

像这样..

HTML代码:
...

onkeyup="calculateTotal(this.value)" 
onclick="clickclear(this, '0')" onblur="clickrecall(this,'0')" value="0"
Run Code Online (Sandbox Code Playgroud)

JS代码:

function calculateTotal(price, quantity, cnt) {  
    if(quantity != ""){  
        var totalAmt = parseInt(document.getElementById('total['+cnt+']').value);  
        totalAmt = parseInt(quantity) * parseInt(price);

        document.getElementById('total['+cnt+']').value = totalAmt;
        document.getElementById('indicator').value++;
    }
    else{
        document.getElementById('total['+cnt+']').value = 0;
        document.getElementById('indicator').value--;

    }
}
Run Code Online (Sandbox Code Playgroud)

并且已经包含了这个:
jquery1.4.2.js

javascript php google-chrome javascript-events

2
推荐指数
1
解决办法
1664
查看次数

将样式附加到DOM而不是替换现有的样式

如何在不消除项目上的现有样式(例如颜色,文本对齐等)的情况下将样式元素附加到DOM?

该事件调用该函数,但问题是'Style'完全被替换为单个项目.

我在事件上触发了简单的代码:

function changeback(onoff) {
   if(onoff) {
      document.getElementById("field1").style.background="#fff";
   } else            
      document.getElementById("field1").style.background="#000";
}
Run Code Online (Sandbox Code Playgroud)

javascript css dom javascript-events

2
推荐指数
2
解决办法
1万
查看次数

如何在onbeforeunload事件中捕获目标URL

我想在离开某些页面之前使用onbeforeunload向用户发送消息.是否有可能知道他们应该在onbeforeunload事件中跳转到哪个URL?

谢谢

javascript javascript-events

2
推荐指数
1
解决办法
5908
查看次数

在单元格元素上绑定事件的最佳方法

我有一个由JS脚本填满的网页,它创建了很多HTML表格.

<table>创建的数量可以在1到1000之间变化,每个单元中有100个单元格.

我的问题是:如何有效地绑定这些表上的点击?我应该将单击的每个单元格<table>或直接绑定到<table>自身并检索单击绑定功能中的单元格吗?

或者你有另一个想法?

谢谢

PS:我正在使用IE6 +

javascript jquery javascript-events

2
推荐指数
1
解决办法
258
查看次数