我正在写一个你可以提问和回答问题的系统,看起来像这样:
一切正常,但代码看起来很可怕!很多重复的部分做了几乎相同的事情。
这仅适用于voteUp-Buttons,voteDown-Buttons的代码几乎相同(除了我降低分数而不是增加分数):
$(document).ready(function(){
$(".btn-default").click(function(){
if( $(this).val() == 'voteUp'){
if( $(this).hasClass("questionButton") ){
$(this).html( "<span class='glyphicon glyphicon-arrow-up' aria-hidden='true' style='color:orange'></span>" );
var currentScore = $(this).parent('li').find('> .num').text();
$(this).parent('li').find('> .num').html(parseInt(currentScore) + 1);
var currentID = $(this).parent('li').find('> .num').attr('id');
var buttonType = "questionButton";
<!-- AJAX script to send the voteScore to the controller and then put it into the DB -->
$.ajax({
type : 'POST',
url : '@routes.Application.voteUp()',
data : {
questionID : currentID,
score : currentScore,
type: buttonType
},
success : function(data){
}
});
}
if( $(this).hasClass("answerButton") ){
$(this).html( "<span class='glyphicon glyphicon-arrow-up' aria-hidden='true' style='color:orange'></span>" );
var currentScore = $(this).parent('li').find('> .num').text();
$(this).parent('li').find('> .num').html(parseInt(currentScore) + 1);
var currentID = $(this).parent('li').find('> .num').attr('id');
var buttonType = "answerButton";
<!-- AJAX script to send the voteScore to the controller and then put it into the DB -->
$.ajax({
type : 'POST',
url : '@routes.Application.voteUp()',
data : {
questionID : currentID,
score : currentScore,
type: buttonType
},
success : function(data){
}
});
}
}
由于我使用了很多$(this)
并且其上下文发生了多次更改,因此我不确定如何清理代码。因为目前很难阅读并因此难以维护/扩展。我想我至少可以外包AJAX-POST,但其余的都是重复的。
那么我怎样才能重新考虑我的代码并删除重复的程序?
答案 0 :(得分:1)
试图优化,欢迎提出建议
#page
{
overflow:hidden;
}