Ruby on rails rails 3干爽不显眼的javascript
我把一切都改成了不引人注目的javascript,因为我认为它使调试变得更加容易 我有点像:Ruby on rails rails 3干爽不显眼的javascript,ruby-on-rails,ruby-on-rails-3,dry,unobtrusive-javascript,Ruby On Rails,Ruby On Rails 3,Dry,Unobtrusive Javascript,我把一切都改成了不引人注目的javascript,因为我认为它使调试变得更加容易 我有点像: $(document).ready(function(){ $('#photos_link').click(function() { select_tab('main', 'photos', $(this)); }); $('#dealership_link').click(function() { select_tab('main', 'dealership'
$(document).ready(function(){
$('#photos_link').click(function()
{
select_tab('main', 'photos', $(this));
});
$('#dealership_link').click(function()
{
select_tab('main', 'dealership', $(this));
});
$('#dealership').hide();
});
如您所见,我有两个非常相似的结构,我想把它们晾干,有什么想法吗?在ApplicationHelper(或适当的助手)中创建一个助手方法:
def选择选项卡单击事件(选项卡)
js=在ApplicationHelper(或适当的助手)中创建助手方法:
def选择选项卡单击事件(选项卡)
js=这里有两个纯js重构:
$(document).ready(function(){
$('#photos_link, #dealership_link').click(function(){
select_tab('main', $(this).attr('id').match(/(.*)_link/)[1], $(this));
});
$('#dealership').hide();
});
及
我个人更喜欢前者。这里有两个纯JS重构:
$(document).ready(function(){
$('#photos_link, #dealership_link').click(function(){
select_tab('main', $(this).attr('id').match(/(.*)_link/)[1], $(this));
});
$('#dealership').hide();
});
及
我个人更喜欢前者。谢谢,第二个看起来更好,它确实重构了一些代码。谢谢,第二个看起来更好,它确实重构了一些代码。就不突兀而言,这与保持表示层与页面结构分离以及在缺少JavaScript的情况下允许功能正常降级有关。因为您的问题是如何干燥代码,所以我将重点放在消除重复,同时保持表示层与其他层分离。帮助程序旨在帮助生成视图,我使用了一个帮助程序来实现这一点,同时也消除了代码中的重复。助手并不意味着包含业务逻辑。这就属于模型了。就非突兀性而言,这与保持表示层与页面结构分离以及在没有JavaScript的情况下允许功能正常降级有关。因为您的问题是如何干燥代码,所以我将重点放在消除重复,同时保持表示层与其他层分离。帮助程序旨在帮助生成视图,我使用了一个帮助程序来实现这一点,同时也消除了代码中的重复。助手并不意味着包含业务逻辑。这属于模型。
$(document).ready(function(){
$('#photos_link, #dealership_link').click(function(){
select_tab('main', $(this).attr('id').match(/(.*)_link/)[1], $(this));
});
$('#dealership').hide();
});
$(document).ready(function(){
$.each(['photos', 'dealership'], function(key, value) {
$('#' + value + '_link').click(function(){
select_tab('main', value, $(this));
});
});
$('#dealership').hide();
});