标签: javascript-events

在Cordova应用程序中发射事件

我试图从浏览器手动触发cordova中的事件(后退,暂停,恢复等)(用于调试).我是按照以下方式进行的:

$(window).trigger('backbutton');
Run Code Online (Sandbox Code Playgroud)

当我们使用注册事件处理程序时 $(document).on('backbutton', handlerCode);

backbutton事件被触发,但是当我们使用cordova文档中的语法注册它时

document.addEventListener("backbutton", onBackKeyDown, false);
Run Code Online (Sandbox Code Playgroud)

事件处理程序未被触发.我在使用时注意到这一点$(window).trigger('backbutton'),代码没有点击cordova.js文件.从浏览器调用cordova应用程序中的事件的正确方法是什么?

javascript events javascript-events cordova

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

删除自定义事件侦听器

我正在听自定义事件:

evt = new CustomEvent("fileThisEmail", {
  detail: {
    name: name,
    email: email,
    content: content
  }
});

window.dispatchEvent(evt);


window.addEventListener("fileThisEmail", this.handleFileEmail);
Run Code Online (Sandbox Code Playgroud)

我需要删除监听器.我试过了:

window.removeEventListener("fileThisEmail", this.handleFileEmail);
window.removeEventListener("fileThisEmail");
Run Code Online (Sandbox Code Playgroud)

但都没有工作.我究竟做错了什么?

javascript event-handling javascript-events

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

Fullcalendar.js点击即可获得当天的活动

Fullcalendar.js点击即可获得当天的活动

是否可以获取我在月视图中单击的所有事件并将其打印在任何div元素中Fullcalendar.js?

这是我的JSFiddle:

http://jsfiddle.net/alexchizhov/syf9ycbc/4/

javascript jquery calendar javascript-events fullcalendar

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

点击事件没有传播

我已将div事件添加到div中

div.addEventListener('click', function(event) { ... });

稍后,我使用innerHTML动态添加一个范围。

div.innerHTML = "<span>some text</span>"

现在,文本不可单击,这使我感到惊讶,因为我认为click事件将传播并触发父div上的click处理程序。到底是怎么回事?

我已经用jsfiddle重新创建了问题。我不明白发生了什么。

http://jsfiddle.net/3n5s3ez9/

javascript javascript-events

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

jQuery聚焦文本框在Safari中输入一个字符后失去焦点

我有一个文本框,当单击一个元素时,它会自动聚焦jQuery:

        my_item.find('input').focus();
Run Code Online (Sandbox Code Playgroud)

它按预期在Firefox和Chrome中运行:输入区域是聚焦的,我可以开始输入它.在Safari中,行为是不同的.我点击元素,输入被聚焦,我开始在框中输入,它只允许我键入一个字符.输入第一个输入字符后,输入框失去焦点,进一步输入不起作用,除非再次手动点击进行焦点.

我发现了有关focus()Safari和Safari工作的疑问,但我认为这是一个不同的问题.我已经尝试了那里提出的解决方案,例如e.preventdefault()在mouseup和类似的情况下,没有效果.

当我在Safari中输入时,如何让我的聚焦文本输入区域保持聚焦?

javascript safari jquery focus javascript-events

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

将其他参数传递给事件处理程序

我在这样的对象中定义了我的函数:

_clickHandler: function(event){
  event.preventDefault();

},

attachClickEv: function(element){
  ......
  element.on('click', this._clickHandler);
},
Run Code Online (Sandbox Code Playgroud)

问题是我似乎无法将"this"传递给clickHandler函数

我知道我可以把它包装在另一个函数中

var tthis = this;
element.on('click', function(event){
  tthis._clickHandler(event, tthis);
});
Run Code Online (Sandbox Code Playgroud)

但后来我不能解开这个功能

element.off('click', this._clickHandler);
Run Code Online (Sandbox Code Playgroud)

还有其他办法吗?

javascript jquery javascript-events

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

AddEventListener:onmousedown

我正在创建一个Chrome扩展程序,用于检查是否存在"onmousedown"属性,如果有,我将执行一些代码.

我试过这个,但它不起作用.

document.addEventListener("onmousedown", function() {

});
Run Code Online (Sandbox Code Playgroud)

javascript-events google-chrome-extension

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

addEventListener只触发一次

我正在向所有与我正在创建的JS模块的一部分匹配特定选择器的链接添加一个click事件.它看起来像这样.

var Lightbox = (function () {

  var showLightbox = function () {
    // this does stuff
  };

  var init = function () {
    var links = document.querySelectorAll(options.selector);
    for(var i = 0; i < links.length; i++) {
      links[i].addEventListener('click', function() {
        showLightbox();
      }, false);
    }  
  };

  return {
    init: init
  };

})();

Lightbox.init();
Run Code Online (Sandbox Code Playgroud)

首次加载页面上与选择器工作匹配的任何链接.还有一种closeLightbox()方法可以正常工作.但是,当第二次单击链接时没有任何反应.我没有控制台错误 - 努法.

添加事件监听器时,我有什么问题吗?

编辑:我已经更新了代码,删除了一些冗余的方法,并在此处粘贴了完整的代码:http://pastebin.com/mC8pSAV2

javascript javascript-events

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

如何在同一页面上的Angular应用程序和非角度应用程序之间进行通信?

我正在通过angular.bootstrapping它使用Angular模块将一个非角度的网页转换为Angular版本.除了需要与页面的其他部分进行通信之外,它工作得很好.不幸的是,我目前无法将页面的其余部分转换为Angular.

到目前为止,我想要做到这一点的最好方法是在bootstrapped元素上触发包含我需要通信的信息的vanilla JS事件.

是否有既定的模式或更好的方法来做到这一点?

javascript communication javascript-events angularjs angularjs-directive

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

当我在提交按钮级别停止传播时,为什么表单提交事件会触发?

HTML

<form>
    <input type='text'>
    <button type='submit'>Submit</button>
</form>
Run Code Online (Sandbox Code Playgroud)

JavaScript的

$('form').on('submit', function(e) {
    alert('submit');
    e.preventDefault();
});

$('button').on('click', function(e) {
    e.stopPropagation();
    alert('clicked');
});
Run Code Online (Sandbox Code Playgroud)

小提琴


观看精彩的视频后在这里,我明白,当我点击提交按钮,事件冒泡到窗体,然后将表单提交事件被触发.这解释了为什么在"提交"之前警告"点击"(在我添加e.stopPropagation()到按钮处理程序之前).

但是当我添加e.stopPropagation()到按钮处理程序时,"提交"仍然会被警告.为什么?我认为这stopPropagation可以防止事件冒泡到form,所以form.on('submit')听众不应该"听到"一个事件.

javascript forms jquery events javascript-events

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