标签: javascript-events

onKeyPress事件在Firefox中不起作用

我有以下javascript代码...这里我在body标签中使用onKeyPress ="someFunction()"来获取按下的键的keyCode.

代码在IE8中工作正常,但这在Firefox中不起作用.

请给出一些解决方案.

<html>
<head>
<title>onKeyPress( ) event not working in firefox..</title>
<script>
function printDiv()
{
  var divToPrint=document.getElementById('prnt');
  newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
  newWin.document.write(divToPrint.outerHTML);
  newWin.print();
  //newWin.close();
}
</script>

<script>
function keypress()
{
  alert(event.keyCode);
  var key=event.keyCode;
  if(key==112 || key==80)
 printDiv();
  else if(key==101 || key==69)
    window.location="http://google.com";
  else if(key==114 || key==82)
    window.reset();  
}
</script>
</head>
<body bgcolor="lightblue" onkeypress="keypress()">
Run Code Online (Sandbox Code Playgroud)

提前致谢.....


这是在IE8中工作正常但在Firefox中无法正常工作的总代码.

<!DOCTYPE html>
<html>
    <head>
    <title>Please help me out</title>
    <script type="text/javascript">
    function printDiv()
    {
      var divToPrint=document.getElementById('prnt');
      newWin=window.open(''+self.location,'PrintWin','left=50,top=20,width=590,height=840,toolbar=1,resizable=1,scrollbars=yes');
      newWin.document.write(divToPrint.outerHTML);
      newWin.print();
    }
    </script>

    <script type="text/javascript">
    function …
Run Code Online (Sandbox Code Playgroud)

javascript firefox javascript-events onkeypress

9
推荐指数
3
解决办法
5万
查看次数

当document.readystate == complete是onload fires时是一样的吗?

在Internet Explorer中,当onreadystatechange被触发并且readystate切换完成时,是否同时onload事件触发?此时是否已完成所有请求?

javascript internet-explorer javascript-events

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

如何在javascript中捕获"History.Back"事件?

在javascript中捕获"History.Back"事件是否可行?©想要捕获history.back()事件和注销用户.

Ps:有一些关于禁用history.back()的代码.但对我没用.

<script type = "text/javascript" >
 function disableBackButton()
 {
   window.history.forward();
 }
 setTimeout("disableBackButton()", 0);
</script>
Run Code Online (Sandbox Code Playgroud)

然后设置onunload事件

<body onunload="disableBackButton()">
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events

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

javascript:父窗口如何知道其子窗口已关闭?

我想在打开的子窗口关闭时执行一个函数.子窗口打开代码是:

outWin = window.open (pageURL, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=no, copyhistory=no, width=600, height=400, top=100, left=100);
Run Code Online (Sandbox Code Playgroud)

我想调用在父窗口中编写的javascript函数.我正在使用YUI-2来开发插件.我怎样才能使它工作?应该注册什么事件?

提前致谢.

javascript yui javascript-events

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

jQuery UI选项卡的事件监听器?

是否有可用于jQuery UI的标签小部件的事件监听器?

我想根据当前活动的选项卡索引更改网页上的背景颜色.这样的事情(伪代码):

$('.tabs').addEventListener(index, changeBackgroundImage);

function changeBackgroundImage(index) {
    switch (index) {
        case 1:
            $('body').css('background-image', '/images/backgrounds/1.jpg');
        break;
        case 2:
            $('body').css('background-image', '/images/backgrounds/2.jpg');
        break;
        case 3:
            $('body').css('background-image', '/images/backgrounds/3.jpg');
        break;
        default:
            $('body').css('background-image', '/images/backgrounds/default.jpg');
        break;
    }
};
Run Code Online (Sandbox Code Playgroud)

提前致谢.

javascript jquery jquery-ui javascript-events jquery-ui-tabs

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

如何从Javascript中的元素中删除click事件?

我有一个<div>使用以下代码附加了click事件的元素:

var id = "someId";
var elem = document.getElementById("elemId");
elem.addEventListener("click", function() { someFunction(id); }, false);
Run Code Online (Sandbox Code Playgroud)

稍后我会复制元素并将其添加到其他部分DOM,但需要先删除该click事件

var elem = document.getElementById("elemId");
elem.removeEventListener("click", ???? , false);
Run Code Online (Sandbox Code Playgroud)

我不确定如何引用监听器,到目前为止我没有尝试过从元素中删除事件.

有任何想法吗?

干杯

斯图尔特

javascript javascript-events

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

JQuery触发自定义事件会导致错误

我有一个人对象,我基本上希望它能够发出自己的事件.但是,如果触发事件与原型具有相同的名称,则Chrome会打印出相当大的错误.在下面的代码示例中, person.murder触发murder将错误写入控制台的事件.(代码更有意义).

function Person() {

}

Person.prototype.murder = function() {
   $(this).trigger("murder");
}
Run Code Online (Sandbox Code Playgroud)

我像这样调用触发器

var barry = new Person();
$(barry).on("murder", function(){
   alert("I am so angry");
})

barry.murder();
Run Code Online (Sandbox Code Playgroud)

因此谋杀巴里导致错误,但是如果事件是这样的事情personDied,那么没有错误.我是否正确地触发了事件?我只是想毫无错误地杀人.

有时会返回错误的崩溃<error>,有时甚至

未捕获RangeError:超出最大调用堆栈大小

javascript jquery javascript-events eventemitter

9
推荐指数
1
解决办法
1172
查看次数

如何删除使用闭包添加的EventListener?

这基本上是一个后续问题:无法将事件传递给addEventListener:closure问题.

我已阅读几乎所有相关问题,但无法找到答案.

下面的函数在循环中执行,其中参数从数据数组中提取.使用此函数,我可以将不同/新参数传递给事件侦听器的每个实例.outer函数允许将参数的值封装在闭包中,以便实际值可用,而不仅仅是对持有者的引用.此外,passevent功能将事件传递给响应函数.最后,响应函数具有所有适当的信息以响应click事件.这非常有效.问题是,我无法弄清楚如何在以后删除事件监听器.我已经尝试了所有我能想到的东西.请帮忙.我该怎么做:removeEventListener?

(function outerfunction(i, f) {
     elementname.addEventListener("click", function passeventfunction(e) { 
         responsefunction(e, f, i); });})(parameter1, parameter2);
Run Code Online (Sandbox Code Playgroud)

此外,如果有人可以帮助澄清这里发生的事情.这是封闭内的闭包吗?是否有留下内存泄漏的危险?谢谢!

javascript closures javascript-events addeventlistener

9
推荐指数
1
解决办法
1795
查看次数

命名空间vanilla JavaScript事件,如jQuery

在jQuery中,当您设置事件时,您可以命名它.这意味着(如果您愿意),例如,您可以拥有多个调整大小窗口事件,并且能够单独取消绑定它们,而不必取消绑定该选择器上的所有事件.

jQuery命名空间的示例:

$(window).on('scroll.myScrollNamespace, function() ...

我想知道如何在纯JavaScript中创建命名空间.这显然不起作用:

window.addEventListener('resize.myScrollNamespace', function() ...

javascript jquery events javascript-events

9
推荐指数
1
解决办法
1933
查看次数

从元素子集中解除绑定jQuery侦听器

我正在使用Zurb Foundation工具提示(http://foundation.zurb.com/docs/components/tooltips.html).我想略微定制他们的行为.他们mouseover在源元素上使用事件监听器来创建工具提示(在第一次调用时),然后将其淡入.我正在尝试做的是让jQuery在页面上选择工具提示源的子集,删除只是他们的鼠标悬停监听器,并绑定新的,将让工具提示在那里停留一秒钟,然后在鼠标移开后消失.

这是棘手的部分.Zurb如此绑定其听众:

$('body.off-canvas').on('mouseenter', '.has-tooltip', ...);

以下将成功删除此侦听器,如预期:

$('body.off-canvas').off('mouseenter', '.has-tooltip');

但我只想删除其中一些元素的监听器,如下所示:

$('body.off-canvas').off('mouseenter', '.has-tooltip.my-custom-class');

事实证明,jQuery不会认为这是更多.has-tooltip元素的"减法" ,而是基本上说,"没有事件监听器匹配这个精确的选择器,因此我什么都不做." 有没有人有一个好的解决方法?如果你自己创建原始的监听器,我发现了一些可行的,但这不是这种情况.

html javascript jquery dom javascript-events

9
推荐指数
1
解决办法
144
查看次数