是否有任何必须在HTML / JavaScript中使用早期绑定/内联事件属性的情况
作者:互联网
在我对以下SO问题的回答中:What does event binding mean?,我做了一个传递评论,使用内联JavaScript /早期绑定来绑定JavaScript事件“经常被误导”
例如:
<input id="MyButton" type="button" value="clickme" onlick="Somefunction()" />
我在讨论“后期绑定”方法,其中标记中没有引用JavaScript,我理解这是最佳实践.然而,评论者声称有时需要使用它,我想知道这些可能是什么.
如果没有讨论任何一个的相对优点,任何人都可以想到任何情况要求你使用(例如)onclick属性而不是后期绑定方法.
非常感谢
解决方法:
我认为很多开发人员会因为无知或缺乏知识(这当然是常见的)而这样做,剩下的开发人员会这样做,因为使用HTML-JS属性比后期绑定更方便,如果你知道的话某些对象和功能总是在每个页面上加载,它们只是“在那里”.
当我说HTML来自AJAX回调时,我认为尤其如此.举例说明一个AJAX请求带有HTML响应并且HTML被插入到页面中.现在,天真的开发人员会按照以下思路思考:
>我不知道响应HTML中有哪些元素,所以我不知道我需要添加什么后期绑定.
>也许我需要将它们全部添加以防万一!或者编写一些解析脚本来检测元素并绑定到我找到的元素?
>但是,如果我需要绑定到尚不存在的东西呢?是时候写一些长内联JavaScript了!
所有这些都可以通过使用一种适用于页面上所有当前和未来元素的无所不在的绑定来消除.在jQuery中,等价于live()
.而不是写:
$('.foo').click(function(){...});
你可以写:
$('.foo').live('click', function(){...});
现在,所有具有类名’foo’的元素将在单击时执行该函数,包括当前不存在的元素.对动态AJAX接口非常有用.
你可能已经知道了,但我只是指出JS属性可以做什么,纯JS可以做得更好,我会考虑最好的做法.
标签:late-binding,javascript,javascript-events 来源: https://codeday.me/bug/20190903/1796607.html