Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在私有函数中设置eventlisteners_Javascript_Javascript Events - Fatal编程技术网

Javascript 在私有函数中设置eventlisteners

Javascript 在私有函数中设置eventlisteners,javascript,javascript-events,Javascript,Javascript Events,我的情况是: function C() { this.create = function() { var div=document.createElement("div"); div.setAttribute("onclick","alert('this works')"); div.onclick=function(){

我的情况是:

    function C() {
            this.create = function() {
                    var div=document.createElement("div");
                    div.setAttribute("onclick","alert('this works')");
                    div.onclick=function(){
                            alert("this doesnt work");
                    }
                    document.appendChild(div);
            }
            this.create();
    }
    var x = new C();
在javascript中不能这样设置onclick事件吗?? 调用的函数是否应该全局定义???我可以理解这个问题,它不是全局定义的。但是我想在定义onclick事件的函数中使用私有变量。有什么建议吗?

怎么样

div.addEventListener('click', function() {
    alert('hello!');
}, false);
?

这样,函数是匿名的,并且只在声明它的范围内可见。这不是全球性的

以下是addEventListener上的一些API文档:

关于

div.addEventListener('click', function() {
    alert('hello!');
}, false);
?

这样,函数是匿名的,并且只在声明它的范围内可见。这不是全球性的


这里是addEventListener上的一些API文档:

您发布的内容几乎是。将元素附加到
文档
之外的任何内容,例如:
document.body
。不要使用
setAttribute
设置事件处理程序,因为它有缺陷。 您可以使用
onclick
属性或W3C标准
addEventListener
方法(
attachEvent
在IE中)


你所发布的内容几乎完全相同。将元素附加到
文档
之外的任何内容,例如:
document.body
。不要使用
setAttribute
设置事件处理程序,因为它有缺陷。 您可以使用
onclick
属性或W3C标准
addEventListener
方法(
attachEvent
在IE中)


我相信这与
div.onclick=function(){alert(“this not work”);}
是一样的,它也使用了一个注释性函数。是的,但是“my”方法允许您添加多个侦听器。为它分配=只允许您有一个侦听器。我相信这与
div.onclick=function(){alert(“这不起作用”);}
是一样的,它也使用了一个注释性函数。是的,但是“my”方法允许您添加多个侦听器。为其分配=只允许您有一个侦听器。