Jan*_*nen 5 javascript jquery javascript-events
我已经看过很多像这样的jQuery代码,不用说我不喜欢它:
<div id="myDiv">
<a class="clickable" href="#">Click Me</a>
<a class="clickable" href="#">Click Me</a>
<a class="clickable" href="#">Click Me</a>
<a class="clickable" href="#">Click Me</a>
</div>
<script>
$(document).ready(function(){
$('clickable').click(function(){
// Do some stuff...
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
我认识的人都在做这个,因为上述事件绑定和处理需要的HTML结构,可在页面上,但它会导致混合表现,逻辑和配置遍布网站的意见.此外,它几乎使用任何调试器来调试逻辑非常困难.
所以,我已经开始在这个单独的.js文件中编写代码(在这里小提琴):
// BEGIN: Event Handlers
var onLoad = function(){
$('.clickable').data('clicked', false);
};
var onMyDivClick = function(){
var clicked = $(this).data('clicked');
if (clicked) {
$(this).trigger('myCustomEvent');
} else {
alert('you clicked me');
$(this).data('clicked', true);
}
};
var onMyCustomEvent = function(){
$(this).css('color', 'dimGray');
alert('please don\'t click me again');
};
// END: Event Handlers
// BEGIN: Event Binding
$(window).on('load', onLoad);
$(document).on('click', '.clickable', onMyDivClick);
$(document).on('myCustomEvent', '.clickable', onMyCustomEvent);
// END: Event Binding
Run Code Online (Sandbox Code Playgroud)
现在,我不需要关心页面上的结构.我不需要将所有内容包装在内部$(document).ready(function(){});我不需要关心结构是否将加载ajax.
问题1 该方法有任何缺点吗?到目前为止,我还没有找到任何.但在重构我们网站上的大部分代码之前,我想听听可能的警告.
问题2 如何使用最新的jQuery功能进一步采用这种方法?
| 归档时间: |
|
| 查看次数: |
246 次 |
| 最近记录: |