标签: javascript-events

执行ESC键的onclick

简而言之,我的问题是我想Esc通过一行javascript 来执行按钮的效果,例如执行效果Esc点击按钮.我该怎么做 ?

[我有一个jQuery框中的上传,所以我希望当上传完成后,将自动执行转义功能关闭框]

javascript jquery javascript-events esc-key

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

如何检测`focusin`支持?

感谢Perfection kills,我们可以使用以下JavaScript来检测事件支持:

function hasEvent(ev) {
    var elem = document.createElement('a'),
        type = 'on' + ev,
        supported = elem[type] !== undefined;
    if (!supported) {
        elem.setAttribute(type, 'return;');
        supported = typeof elem[type] === 'function';
    }
    elem = null;
    return supported;
}
Run Code Online (Sandbox Code Playgroud)

这只适用于我需要的时间:检测mouseenter支持; hasEvent('mouseenter')将在Chrome,Firefox等中返回false,应该如此.

但现在我正在尝试"修复"不支持focusin和focusout事件的浏览器.根据PPK,这基本上只是Firefox.不幸的是,Chrome和Safari被列为"不完整"支持,原因如下:

Safari和Chrome仅使用addEventListener触发这些事件; 不是传统的注册.

一般来说,这很好; addEventListener反正我只会用.但是,它确实意味着检测支持通过elem.onfocusin !== undefined将不起作用.我测试了它,这是真的:

<p>Do I support <a href="#">focusin</a>?</p>

<script>
var elem = document.getElementsByTagName('p')[0];

// hasEvent method defined here
function listener() { …
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events focusin browser-feature-detection

13
推荐指数
1
解决办法
4897
查看次数

如何调试特定的javascript点击事件?

在雅虎天气页面上,有一个链接标记为C将温度单位从更改Fahrenheit为Celsius.
Wheater雅虎

我正在调试这个动作,并了解在将F转换为C的幕后执行的javascript是什么.调试这些事情的方式是什么?

链接:http://weather.yahoo.com/?w = 2295401

javascript javascript-events javascript-debugger

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

如何在Chrome Dev Tool中使用getEventListeners?

我试图追溯哪个函数挂钩到click事件中.someclass.我打开Chrome Dev Tool并输入

getEventListeners(document.querySelector('.someclass'));

结果就是这样

Object {}

我无法单击并打开它以查找对象的名称或处理单击事件的源代码.

有没有办法找出来?

更新1:

跟随Krasimir的建议如下.可能只有两个事件:mousemove或mouseover.那么我该如何找到处理该事件的确切函数canvas.overlay呢?有太多可以深入研究.

在此输入图像描述

javascript dom javascript-events google-chrome-devtools

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

Javascript或jQuery中的线程安全队列

我有许多异步AJAX调用,其结果将被处理.处理发生的顺序无关紧要,但结果需要一次处理一个.所以我想简单地做我的AJAX调用,他们只是把他们的结果放在一个队列中.然后应该在单个线程上处理该队列.这样,结果可以尽快一次处理一次.

最好的方法是什么?我正在使用jQuery,很高兴利用它为此提供的任何设施.

javascript ajax jquery javascript-events

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

HTML5音频:如何只播放音频文件的选定部分(音频精灵)?

我正在开发iOS节拍器网络应用程序.由于移动safari一次只能播放一个声音,我正在尝试创建一个"音频精灵" - 我可以使用单个音轨的不同片段来生成不同的声音.我有1秒的剪辑,上面有2个半秒的声音.

<audio id="sample" src="sounds.mp3"></audio>

<a href="javascript:play1();">Play1</a>
<a href="javascript:play2();">Play2</a>
<a href="javascript:pauseAudio();">Pause</a>

<script>
var audio = document.getElementById('click');

function play1(){
    audio.currentTime = 0;
    audio.play();

    // This is the problem area
    audio.addEventListener('timeupdate', function (){
        if (currentTime >= 0.5) {
            audio.pause();
        }
    }, false);
}   

function play2(){
    audio.currentTime = 0.5;
    audio.play();
}

function pause(){
    audio.pause();
}
</script>
Run Code Online (Sandbox Code Playgroud)

在JSFiddle上看到它.

正如您所看到的,我试图使用'timeupdate'事件(jPlayer示例)但无济于事.

我见过Remy Sharp关于音频精灵的帖子,但是(A)我无法让它为我工作,而且(B)我宁愿远离库依赖.

有任何想法吗?在此先感谢您的帮助!


更新

我现在使用它setInterval:

function play1(){
    audio.currentTime = 0;
    audio.play();
    int = setInterval(function() …
Run Code Online (Sandbox Code Playgroud)

javascript html5 javascript-events html5-audio

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

汉字和onkeypress事件

在Windows上使用Internet Explorer我有一个onkeypress事件检测文本框中输入的文本.但是,当输入中文字符时,此事件不会触发.有没有人遇到这个或有解决这个问题的建议?

html javascript javascript-events

12
推荐指数
2
解决办法
2719
查看次数

Javascript:动态设置onclick并传入元素本身

我正在动态创建一些<div>元素,然后innerHTML用文本填充它们的属性.我正在尝试设置这样的onclick事件处理程序:

myDiv.onclick = function() { alert("Hello!") };
Run Code Online (Sandbox Code Playgroud)

我能做到的.我想要做的是能够在新定义的onclick函数中访问值/ innerHTML(Javascript和DOM的新内容,所以我不确定我正在寻找的是什么术语).我如何访问myDiv为其onclick属性定义的函数内的数据?myDiv将是一个简单的事情:

<div>StackOverflow</div>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

javascript javascript-events

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

如何防止将无效字符输入到输入字段中

Onkeydown,我运行以下JavaScript:

function ThisOnKeyDown(el) {
   if (el.title == 'textonly') {
       !(/^[A-Za-zÑñ-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ-\s]/ig, '') : null;
   }
   if (el.title == 'numbersonly') {
       !(/^[0-9]*$/i).test(el.value) ? el.value = el.value.replace(/[^0-9]/ig, '') : null;
   }
   if (el.title == 'textandnumbers') {
       !(/^[A-Za-zÑñ0-9-\s]*$/i).test(el.value) ? el.value = el.value.replace(/[^A-Za-zÑñ0-9-\s]/ig, '') : null;
   }
}
Run Code Online (Sandbox Code Playgroud)

这三个标题属性之一被赋予页面上的各种输入字段.只要无效字符被正确删除,代码就会起作用,但直到输入下一个字符为止.我想找到一种简单地拒绝无效输入的方法.我感谢您的帮助!

编辑:我全局创建事件.我是这样做的:

      function Globalization() {
      var inputs = document.getElementsByTagName('input');
      for (i = 0; i < inputs.length; i++) {
          inputs[i].onfocus = createEventHandler(
              ThisOnFocus, inputs[i]);
          inputs[i].onblur = createEventHandler(
              ThisOnBlur, inputs[i]);
          inputs[i].onkeydown = createEventHandler( …
Run Code Online (Sandbox Code Playgroud)

javascript regex javascript-events

12
推荐指数
4
解决办法
6万
查看次数

事件传播,叠加和拖放事件

当用户将文件拖到窗口上时,我想在视口上叠加div.

但是,我遇到了事件传播的问题.当我设置的叠加display: block它似乎火了一个dragleave事件,然后又dragenter另,然后dragleave再次,所以它总是在后dragleave状态.当然我打电话e.stopPropagation()和e.preventDefault()事件对象,但它似乎没有什么区别.

在窗口上拖动某些内容时,console.log()输出:

dragenter
dragenter
dragleave
dragenter
dragleave
Run Code Online (Sandbox Code Playgroud)

css.默认#overlay设置为display: none,但会显示是否body有dragenter类:

    body {
        position: absolute;
        height: auto;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        margin: 0;
        padding: 0;
    }

    #overlay {
        position: absolute;        
        height: auto;
        width: auto;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: url(bg.png) repeat-x top right, url(bg.png) repeat-x bottom left, url(bg.png) repeat-y top right, url(bg.p …
Run Code Online (Sandbox Code Playgroud)

javascript css jquery html5 javascript-events

12
推荐指数
2
解决办法
7275
查看次数