相关疑难解决方法(0)

如何在JavaScript中触发事件?

我已将事件附加到文本框中addEventListener.它工作正常.当我想以编程方式从另一个函数触发事件时,我的问题出现了.

我该怎么做?

javascript events triggers addeventlistener dom-events

504
推荐指数
10
解决办法
65万
查看次数

是否可以拦截/覆盖页面中的所有点击事件?

我写了一个应该在移动设备上运行的html5应用程序.90%的时间它工作正常,但在某些设备(主要是androids 4.0+)中,点击事件会触发两次.

I know why that happens, I'm using iScroll 4 to simulate native scrolling and it handles the events that happen inside the scroll.(line 533 dispatches the event if you're interested) Most of the time it works fine but in certain devices both the iScroll dispatched event and the original onClick event attached to the element are fired, so the click happens twice. I can't find a pattern on which devices this happen so I'm looking for alternatives to …

javascript jquery

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

如何在全局和内部的requireJS对象中调度事件?

我正在寻找一种方法来使用javascript或jquery在全局和内部的requireJS模块中调度事件.

我希望能够在我的js文件中说:

dispatchEvent(myCustomEventWithSomeData);
Run Code Online (Sandbox Code Playgroud)

然后在应用程序的其他部分添加一个监听器,如下所示:

addEventListener(“type Of Event”, executeThisFunction);
Run Code Online (Sandbox Code Playgroud)

这有可能使用jquery吗?还是其他任何方式?并且潜在的解决方案是否可以在requireJS模块中工作,而这些模块不是全局javascript对象?

另外,我如何创建一个泡泡事件.因此,如果我希望事件仅在代码的特定部分执行,则不会全局调度?

javascript jquery requirejs

5
推荐指数
1
解决办法
2299
查看次数

常规Javascript对象可以调度事件,还是只能用于DOM节点?

我已经创建了一个Javascript伪类,我希望它能够调度自定义事件.不幸的是,似乎只有DOM节点能够调度事件.因此,我被迫将DOM节点与我的伪类的每个实例相关联,以便DOM节点可以代表我的类调度事件.

我希望能够将事件监听器直接添加到我的伪类的实例中.不幸的是,因为伪类无法调度它自己的事件,所以我必须将事件监听器添加到关联的DOM节点.

当我这样做时,我的事件处理函数接收对DOM节点而不是伪类实例的引用.在我可以调用它的方法之前,我必须确定DOM节点属于哪个伪类实例.

我试图尽可能保持我的Javascript和DOM之间的清晰分离.当然,有时将伪类实例与DOM元素相关联是有意义的,但我不希望这是一个绝对的要求.

我的样板代码:

jQuery(document).ready(function($){

    var cat = new Animal($('#cat'), 'Larry', 'Meow');

    cat.domElement.on('spoken', function(event){
        var classInstance = $(this).data('instance');
        console.log(classInstance.firstName + ' has spoken');
    });

    cat.speak();

});
Run Code Online (Sandbox Code Playgroud)

我的假类

(function(){

    window.Animal = Animal;

    function Animal(domElement, firstName, sound) {
        // Save a reference to the DOM node
        this.domElement = domElement;

        // Give the DOM node a reference to this class instance
        this.domElement.data('instance', this);

        this.firstName = firstName;
        this.sound = sound;
    }

    Animal.prototype.speak = function() {
        console.log(this.sound);
        this.domElement.trigger('spoken');
    };

}(window));
Run Code Online (Sandbox Code Playgroud)

旁注:我需要支持IE8等传统浏览器.我非常努力地使用正确的Javascript事件模型,而不是依赖于jQuery.不幸的是,我无法为dispatchEvent,addEventListener,removeEventListener,Event,CustomEvent等找到足够的polyfill .jQuery提供了一个具有熟悉语法的优秀抽象层,我的团队无论如何都会定期使用它.但是,如果有一个干净的,香草味的Javascript解决方案,请告诉我!

javascript dom

5
推荐指数
1
解决办法
211
查看次数

“addEventListener”在幕后如何工作?

所以,我有这种好奇心已经有一段时间了。我想知道,addEventListener幕后是如何运作的。我知道它的作用,但我只是无法理解它是如何做到的。

我检查了许多链接和资源,是最接近我正在寻找但仍然没有成功的一个。

为了澄清我真正在寻找什么,我想知道如何创建自己的addEventListener函数,将第一个参数作为事件名称,将第二个参数作为接受该eventArgs参数的回调。

javascript event-listener

5
推荐指数
1
解决办法
974
查看次数

javascript创建类事件

如何为javascript类创建自定义事件?
示例代码

function somefunction(url){
   this.h_world = function(){/*some random code to do*/ };
}

var hw = new somefunction();
Run Code Online (Sandbox Code Playgroud)

现在,举一个非常简单的例子,如何在hw.h_world完成执行并为其返回一些数据时为此创建一个自定义事件处理程序?

例如

var hw = new somefunction();
hw.h_world();
hw.finished_h_world = function(somedata){
  alert(somedata);
}
Run Code Online (Sandbox Code Playgroud)

javascript class

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