相关疑难解决方法(0)

如何在JavaScript中触发事件?

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

我该怎么做?

javascript events triggers addeventlistener dom-events

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

自定义对象上的addEventListener

我创建了一个有几种方法的对象.其中一些方法是异步的,因此我想使用事件来在方法完成时执行操作.为此,我尝试将addEventListener添加到对象.

的jsfiddle

var iSubmit = {
    addEventListener: document.addEventListener || document.attachEvent,
    dispatchEvent: document.dispatchEvent,
    fireEvent: document.fireEvent,   


    //the method below is added for completeness, but is not causing the problem.

    test: function(memo) {
        var name = "test";
        var event;
        if (document.createEvent) {
            event = document.createEvent("HTMLEvents");
            event.initEvent(name, true, true);
        } else {
            event = document.createEventObject();
            event.eventType = name;
        }
        event.eventName = name;
        event.memo = memo || { };

        if (document.createEvent) {
            try {
                document.dispatchEvent(event);
            } catch (ex) {
                iAlert.debug(ex, 'iPushError');
            }
        } else { …
Run Code Online (Sandbox Code Playgroud)

javascript object addeventlistener cordova

56
推荐指数
8
解决办法
7万
查看次数

更新Backbone模型/视图的轮询请求

我需要找到一种方法来更新用它实现的Web应用程序backbone.

用例如下:
我有几个视图,每个视图,或者与此视图相关的模型/集合,需要在不同的时间向服务器发出不同的轮询请求以发现一些更改.

我想知道最通用的方法是什么:

1)实现Traditional Polling Request
2)实现Long Polling Request
3)实现HTML5 web socket


PS:
1)服务器是用PHP编写的.
2)目前我正在寻找一种不使用HTML5 WebSockets的解决方案,因为使用PHP可能并不那么简单.


这是我的简单代码(1)使用Traditional Polling Request.

(1)

// MyModel
var MyModel = Backbone.View.extend({
    urlRoot: 'backendUrl'
});

// MyView
var MyView = Backbone.View.extend({

    initialize: function () {
        this.model = new MyModel();
        this.model.fetch();
        this.model.on('change', this.render);
        setTimeout(function () {
            this.model.fetch();
        }, 1000 * 60 * 2); // in order to update the view each two minutes
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript polling long-polling websocket backbone.js

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

addEventListener 在幕后如何工作?

var elem=document.getElementById('mydiv');
elem.addEventListener('click',function(){...});
Run Code Online (Sandbox Code Playgroud)

执行完上面的代码后elem就是一个HTMLDivElement接口的实例。我的大问题是 addEventListener() 方法到底做了什么。它在哪些 DOM 对象中注册了侦听器以及它是如何注册的(它更改了这些 DOM 对象的哪些属性)。换句话说,我想知道如何知道elem添加了一个监听器,它的哪些属性(所有这些属性都影响到它的原型链)。例如,我知道 Event.prototype 具有诸如type, 之类的关键属性target;但是我无法“连接”它们elem......

我不想找到哪些事件侦听器附加到上述 DOM 节点。我想知道内部程序。

谢谢

javascript dom

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