Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重构javascript事件处理程序——这是合理的做法吗?_Javascript_Jquery - Fatal编程技术网

重构javascript事件处理程序——这是合理的做法吗?

重构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

我继承了一个相对较大的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 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事件中