标签: javascript-events

如何将char转换为其键码?

如何将字符转换为其各自的键码?

例如:

  • a65
  • b66
  • c67
  • d68

javascript jquery javascript-events

34
推荐指数
4
解决办法
5万
查看次数

如何在jQuery中检测新元素的创建?

假设我有以下代码返回页面上锚元素的数量:

function getLinkCount() {
    alert("Links:" + $("a").length);
}
Run Code Online (Sandbox Code Playgroud)

如果我打电话准备好文件,它将按预期工作.但是,如果现在通过javascript动态地将新链接插入到页面中,我怎样才能获得再次运行链接计数器功能的通知?(我无法控制可以创建新链接的脚本).

基本上我正在寻找类似于live()仅观看元素创建事件的东西,例如:

$("a").live("create", getLinkCount);
Run Code Online (Sandbox Code Playgroud)

在创建新元素时会触发.

jquery javascript-events

33
推荐指数
4
解决办法
4万
查看次数

在SPAN元素上禁用设置属性不会阻止单击事件

我有一个<span>元素可以在click事件上执行某些操作.

当我禁用它时,使用jQuery:

$("span").attr("disabled", true);
Run Code Online (Sandbox Code Playgroud)

单击span元素时,将继续调用事件处理程序.

我在Chrome 13中测试.有什么想法吗?

html jquery javascript-events

33
推荐指数
4
解决办法
8万
查看次数

DOMContentLoaded事件是否与jQuery的.ready()函数完全相同?

我已经window.addEventListener('DOMContentLoaded', function() {});用jQuery 替换了$(document).bind('ready', function() {});,因为第一个没能在IE <9上工作而且我不想玩.attachEvent()那个虚拟浏览器,如果我可以用jQuery本身很好地覆盖它.

更换后不久,我注意到DOMContentLoaded事件总是在页面加载/刷新后大约0-2毫秒被触发(至少这是我的日志记录脚本记录的内容),而.ready()在页面刷新后总是需要至少15-20毫秒,被解雇(再次 - 由脚本记录).

我问的纯粹是为了满足我的好奇心,为什么会出现这种"显着"的延迟?当然,对我来说没有问题,jQuery稍后会触发该事件.只是,因为我想知道所有的答案(统治世界!:)),我无法忍受!:]

编辑:在.ready()函数doc一些用户(Nick(of Nexxar))指出:" jQuery模拟IE上不存在的"DOMContentLoaded"事件,但使用的机制比其他浏览器上使用的事件发出的时间要晚得多 " .也许这是一样的,我要求的?

javascript jquery events dom javascript-events

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

无法加载资源:服务器在绑定功能中响应状态为500(内部服务器错误)

我正在尝试使用ajax发送呼叫,但在Chrome中它出现上升错误,但在Firefox中没有错误.但它仍然无法调用该方法.我试图用萤火虫记录我的电话,但是萤火虫没有电话请求.所以这就是firefox中没有错误的原因.

Index.chshtml代码如下

function onLoad(e) {

    var grid = $(this).data("tGrid");
    //bind to the context menu of the Grid's header
    event.preventDefault();
    $(this).find(".t-grid-header").bind('contextmenu', function (e) {
        //wait for the menu to be generated
        setTimeout(function () {
            // bind to the checkboxes change event. The context menu has ID in the format "GridName" + "_contextmenu"
            $('#globalsearchgrid_contextMenu :checkbox').change(function () {
                debugger;
                var $checkbox = $(this);
                // the checked state will determine if the column has been shown or hidden
                var checked = $(this).is(":checked");
                // …
Run Code Online (Sandbox Code Playgroud)

javascript jquery javascript-events asp.net-mvc-3

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

AngularJS摘要循环多久运行一次?

在讨论AngularJS的优点时,双向数据绑定经常被吹捧为Angular相对于其他JS框架的主要优点. 深入挖掘,文档表明这个过程是通过脏检查而不是通过事件驱动的措施来完成的.首先,似乎摘要循环的工作原理是在后台以周期性间隔触发方法,$watch在每个周期内检查所有es.然而,进一步阅读,似乎摘要循环实际上是由rootScope.digest()触发的$.apply,而触发又由事件(!)触发,例如通过调用的onClick事件ng-click.

但是,这怎么可能呢?我认为Angular 不使用更改侦听器.那么摘要循环真的如何运作? Angular会在内部自动启动摘要循环,还是由事件触发的摘要循环? 如果摘要循环自动运行,它运行的频率是多少?


一些澄清要点:

  • 我不是在询问手动绑定到更改时摘要循环是如何运行的.在这种情况下,如果要强制使用摘要循环,可以通过调用来执行此操作$.apply()
  • 我也没有询问digest循环响应用户事件的频率.例如,如果ng-model位于输入框中,Angular将在用户开始输入时启动摘要循环.令人困惑的部分是,为了知道用户正在打字,Angular是否在某处使用基于事件的 onKeyUp?
  • 我已经知道每个摘要循环最多有10个循环的限制.我的问题不是关于每个摘要循环的循环次数,而是每秒运行的摘要循环次数.
  • 额外问题:摘要循环与JavaScript事件循环有何关系?JS事件循环是否在后台定期运行?摘要循环与事件循环是一回事,但只在"角度上下文"中?这些完全不同的想法吗?

javascript event-handling javascript-events angularjs

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

React Synthetic Event区分左右点击事件

我试图区分OnClick函数中的左键和右键单击.但,

var r = React.createClass({
   handleClick : function(e){
       //left click
       if(e.which==1){ 
          //Do something
       }
   },
   render : function(){
       return <p onClick={this.handleClick}>Something </p>
   }
});
Run Code Online (Sandbox Code Playgroud)

结果是合成事件未定义的e.which.如何区分左右点击?

javascript javascript-events reactjs

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

DOM节点上的事件处理程序是否会被节点删除?

(注意:我在下面使用jQuery,但问题实际上是一般的Javascript问题.)

假设我有一个div#formsection使用AJAX反复更新其内容的内容,如下所示:

var formSection = $('div#formsection');
var newContents = $.get(/* URL for next section */);
formSection.html(newContents);
Run Code Online (Sandbox Code Playgroud)

每当我更新这个div时,我会触发一个自定义事件,它将事件处理程序绑定到一些新添加的元素,如下所示:

// When the first section of the form is loaded, this runs...
formSection.find('select#phonenumber').change(function(){/* stuff */});

...

// ... when the second section of the form is loaded, this runs...
formSection.find('input#foo').focus(function(){/* stuff */});
Run Code Online (Sandbox Code Playgroud)

所以:我将事件处理程序绑定到某些DOM节点,然后删除这些DOM节点并插入新节点(html()这样做)并将事件处理程序绑定到新的DOM节点.

我的事件处理程序是否与它们绑定的DOM节点一起被删除?换句话说,当我加载新的部分时,很多无用的事件处理程序堆积在浏览器内存中,等待不再存在的DOM节点上的事件,或者当它们的DOM节点被删除时它们被清除了吗?

奖金问题:如何自己测试?

javascript dom javascript-events

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

element.onload vs element.addEventListener("load",callbak,false)

有人可以解释一下在javascript中指定onload回调函数的以下两种方法之间的区别是什么?

element.onload = callback
Run Code Online (Sandbox Code Playgroud)

element.addEventListener("load",callbak,false)
Run Code Online (Sandbox Code Playgroud)

javascript javascript-events onload-event

32
推荐指数
0
解决办法
3万
查看次数

参数e(事件)究竟是什么以及为什么将它传递给JavaScript函数?

好吧,当我学习JavaScript时,我读过的所有书籍和互联网文章都显示了将参数传递给e处理JavaScript事件的函数的代码,例如下面的代码块:

function myEvent(e) {
    var evtType = e.type
    alert(evtType)
    // displays click, or whatever the event type was
}
Run Code Online (Sandbox Code Playgroud)

我总是接受它的方式,但现在我有一些问题(这对我来说非常混乱):

  1. e是从哪里来的?当我查看整个JavaScript文件时,e似乎根本不存在.
  2. 为什么将此参数传递e给函数?如果我没有传递e给他们,功能是否会停止工作?
  3. 考虑下面的代码块.e传递给匿名内部函数的事件变量().假设我想在匿名函数之外使用事件对象(可能在行上方/下方的element.onkeypress行中).我怎样才能做到这一点?

    element.onkeypress = function(e) {
        if(e.keyCode) {
            element.keyCode = e.keyCode;
        } else {
            element.keyCode = e.charCode;
        }
    };
    
    Run Code Online (Sandbox Code Playgroud)

javascript events javascript-events

32
推荐指数
4
解决办法
4万
查看次数