重构javascript事件处理程序——这是合理的做法吗?
我继承了一个相对较大的javascript应用程序(约3k行代码),只做兼职javascript。我想把所有jQuery事件处理程序放在一个更合理的组织中。我是这样想的: 之前:重构javascript事件处理程序——这是合理的做法吗?,javascript,jquery,Javascript,Jquery,我继承了一个相对较大的javascript应用程序(约3k行代码),只做兼职javascript。我想把所有jQuery事件处理程序放在一个更合理的组织中。我是这样想的: 之前: $('#click-here').click(function(){ //a bunch of dom manipulations and with 30 of them makes the app fairly convoluted }); 之后: function result_click(){ var
$('#click-here').click(function(){
//a bunch of dom manipulations and with 30 of them makes the app fairly convoluted
});
之后:
function result_click(){
var global_id=$(this).data('global-id');
alert('here are the results of clicking: ' + global_id);
}
$(document).ready(function(){
$('#click-here').on('click',result_click);
});
</script>
<div id='click-here' data-global-id='23'>click HERE!</div>
函数结果\u单击(){
var global_id=$(this).data('global-id');
警报('这里是单击“+全局_id”的结果);
}
$(文档).ready(函数(){
$('click here')。在('click',result\u click)上;
});
点击这里!
这将是一个相当容易的重构,而且似乎可以更好地进行结构调整。事件处理部分似乎最失控。这样做合理吗?一旦达到这一点,将其制作成一个backbone.js应用程序似乎相当容易
thx是的,最好预先定义函数,然后将对函数的引用传递到click事件中