标签: javascript-events

如何在使用JavaScript创建元素时添加onclick事件?

我有一个脚本,我将元素附加到列表中.我需要在单击元素时调用函数,对于此函数,需要创建li时的变量值(它是li内容).

我已经检查了添加等解决方案newLi.onclick = function(){...}.

这个解决方案的问题是我没有在函数中获得正确的值,我得到列表中另一个元素的值.

现在这就是我创建元素的方式:

var ULlist = document.getElementById('ULid');
for(i=0;i<data.length;i++){
   var Value = data[i] //function to get data
   var newLi = document.createElement('li');
   newLi.appendChild(elements.createTextNode(Value));
   newLi.onclick = function(){alert(Value)} //not displaying the right value
   ULlist.appendChild(newLi);
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,有没有办法创建te onclick事件,为元素提供变量的正确值?

编辑:我添加了一部分代码.Li正在被创建,并且信息显示正确,唯一的问题是当试图创建它没有给出正确值的事件时,应该是在li

javascript javascript-events

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

未捕获的SyntaxError:意外的字符串

我无法让以下工作,我从Chrome的控制台获得的是Uncaught SyntaxError: Unexpected string.

我已经在声明中尝试tmp = event.keyCode和改变tmp,但我无法确定问题.ifevent.keyCode

function showSearching() {
    alert ("Hello World");
}

$('#search').bind('keydown', function() {
    tmp = Number(event.keyCode);
    if ( ( tmp=<"48" && tmp=>"90" ) || ( tmp=<"96" && tmp=>"111" ) || ( tmp=<"186" && tmp=>"222" ) ) {
        showSearching();
    }    
});
Run Code Online (Sandbox Code Playgroud)
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<input id="search" type="text">
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-events

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

从html调用JavaScript代码有多少种方法?

调用javascript代码有多少种方法?首先出现的是典型的<script>标签然后有一些标签的属性,onload=""为body标签,href="JavaScript:"的a标签,onSubmit="JavaScript:"的form标签,该onclick=属性.

除此之外,我知道在加载完所有代码之后也可以从javascript加载:在chrome控制台中包含javascript文件.

但我对从html文档运行代码的方式更感兴趣,是否有详尽的列表:事件,属性,......?

html javascript javascript-events

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

重新启动事件监听器javascript/jquery

我有一个页面,其中的内容通过ajax引入.我遇到的问题是在加载内容后添加相关的事件侦听器.有没有办法告诉浏览器再次从头部运行所有脚本?

下面是一个从页面头部运行的代码的简单示例,显然任何与通过AJAX引入的".RRCustomizeBox .customize"匹配的新html元素都不会有以下click事件.

例如:

_vvdCMS.kklsRegions = {

    init: function (){
        $(document).ready(function(){

            $('.RRCustomizeBox .customize').click( function(){
                _vvdCMS.kklsRegions.showRRCustoms(this);
            });

        });
    },

    showRRCustoms: function(obj) {
        var objParent = $(obj).parent();
        objParent.find('.RRCustomizeBoxForm').fadeIn(700);
    }
}
_vvdCMS.kklsRegions.init();
Run Code Online (Sandbox Code Playgroud)

谢谢你的提示,

约翰

ajax jquery javascript-events

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

JavaScript代理模式解释

我研究JavaScript代理模式,但我仍然没有,我可以从中受益.因此,我想向您提供两个例子,请您指出它们之间的区别.

请看下面的代码:

  • 这两个addEventListener电话有什么区别?其中一个人handleDrop定期打电话.另一个使用代理模式.
  • 使用代理模式方法可以获得什么?

我测试了两个函数,它们都handleDrop成功调用了.

DndUpload.prototype.buildDropZone = function ()
{
    var self = this,

    this.dropZone.addEventListener('drop', function (e) { self.handleDrop.call(self, e) }, false);
    this.dropZone.addEventListener('drop', self.handleDrop, false);


    DndUpload.prototype.handleDrop = function (e)
    {
        alert("test");
        ...
    };
}
Run Code Online (Sandbox Code Playgroud)

您可以为我提供很好的参考,其中包含JavaScript中代理模式的非常清晰的解释.

提前致谢.

javascript web-applications javascript-events proxy-pattern

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

Javascript:在调用它们之前修改回调函数的参数

我有一个自定义对象,它实现了一个稍后会执行的函数.以下是有人称之为:

customObject.onSomething(function(e) {
    // do something with e
    console.log('foobar');
});
Run Code Online (Sandbox Code Playgroud)

以下是onSomething的创建方式:

var CustomObject = function() {
    this.onSomething = function(callback) {
        // If the user passes in parameter(s), how can I modify them before calling?
        callback.apply(this);
    }
}
Run Code Online (Sandbox Code Playgroud)

在执行应用或调用函数之前,如何修改用户传入的参数?

javascript parameters callback javascript-events

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

为什么我不能直接分配功能?

这段代码调用f()函数:

<p id="firstp">Hello!</p> 
<script>
  function f() {
    doSomething();
  };
  document.getElementById("firstp").onmouseover = function() {
      f();
  };
</script>
Run Code Online (Sandbox Code Playgroud)

然而,如果我这样写它,它就会停止工作:

  document.getElementById("firstp").onmouseover = f();
Run Code Online (Sandbox Code Playgroud)

当我直接调用函数时,为什么不设置事件处理程序?

javascript javascript-events

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

onDeviceReady没有在PhoneGap hello world app中触发

我正在尝试做一个简单的警报('测试')应用程序,但事件没有被解雇,这是代码:

function onLoad() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

// Cordova is loaded and it is now safe to make calls Cordova methods
//
function onDeviceReady() {
    alert('omar');
}
Run Code Online (Sandbox Code Playgroud)

HTML:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
        <title>Hello World</title>
    </head>
    <body>
        <div class="app">
            <h1>AAAA</h1>
        </div>
        <script type="text/javascript" src="cordova-2.2.0.js"></script>
        <script type="text/javascript" src="js/index.js"></script>

    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

为什么是这样?

javascript javascript-events cordova

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

如何将相同的函数绑定到不同的jQuery事件?

我想绑定一个启用事件change和按钮的函数keypress.有比这更好的方式:

 $(':input').change(function () {
    onInputChange();
}).keypress(function () {
    onInputChange();
});
Run Code Online (Sandbox Code Playgroud)

谢谢.

jquery events javascript-events

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

骨干中自定义事件的优势是什么?

我理解自定义事件如何在Backbone中工作以及如何触发它们,但我很难理解何时使用它们以及它们直接调用函数的目的是什么.

例如

var MyView = Backbone.View.extend({
    tagName: 'div',
    className: 'myview',

    initialize: function() {
        this.model.on("mycustomevent", this.doSomething, this);
    },

    doSomething: function() { 
         console.log('you triggered a custom event');
    }

});
Run Code Online (Sandbox Code Playgroud)

如果我没有弄错,可以通过this.model.trigger("mycustomevent")在其他方法中使用来调用doSomething 方法,但也可以直接调用this.doSomething()

在视图之外,可以类似地调用它

var myview = new MyView({model:somemodel});

myview.model.trigger("customevent");

myview.doSomething();
Run Code Online (Sandbox Code Playgroud)

我很困惑的是为什么不放弃自定义事件,只需在需要时直接调用方法?任何示例用途将不胜感激!

javascript javascript-events backbone.js backbone-events

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