点击更改按钮

时间:2015-01-14 14:03:38

标签: javascript jquery html django

在html中,我有一个显示文本的按钮和一个隐藏它的按钮。每个按钮都有' onclick'指向js中特定函数的属性。我想改变' onclick'单击按钮时的值,也可以更改按钮内的文本(显示/隐藏)。 我无法使用' triggleClass'因为我需要使用' onclick'属性(它的值因为我使用django而改变了) 目前,我有两个按钮用于此操作,我只想将它们统一到一个按钮。 代码:

<btn id="show_btn_{{forloop.counter}}" onclick="Show({{forloop.counter}})" class="btn show_btn">Show</btn>
<btn id="hide_btn_{{forloop.counter}}" onclick="Hide({{forloop.counter}})" class="btn hide_btn">Hide</btn>

<script>
function Show(pos){

    $('#show_text_'+pos).css('display','block');
    $('#my_text_show_btn_'+pos).prop("disabled", true);

}

function Hide(pos){
    $('#show_text_'+pos).css('display','none');
    $('#my_text_show_btn_'+pos).prop("disabled", false);

}
</script>

有人有解决方案吗?

谢谢!

4 个答案:

答案 0 :(得分:1)

试试这段简短的代码:

function ShowHide(id) {
  if ($(id).html() == "Show") {
    $(id).html("Hide");
  } else {
    $(id).html("Show");
  }

}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<btn onclick="ShowHide(this);" class="btn show_btn">Show</btn>

答案 1 :(得分:0)

<btn id="show_btn_{{forloop.counter}}" onclick="ShowHide({{forloop.counter}})" class="btn show_btn">Show</btn>

<script>
function ShowHide(pos){

    if ($('#show_text_'+pos).css('display') !== 'none') { //lets hide
        $('#show_text_'+pos).css('display','none');
        $('#show_btn_'+pos).html("Show");
    } else {
        $('#show_text_'+pos).css('display','block'); 
        $('#show_btn_'+pos).html("Hide");
    }

}

</script>

答案 2 :(得分:0)

<script>

$(document).ready(function(){
   $('.show_btn').click(function(){
    if($(this).text()=='Show'){
        $(this).text('Hide');
     }
     else if($(this).text()=='Hide'){
        $(this).text('Show');
     }
   });
});
</script>

答案 3 :(得分:0)

<button  class="btn show_btn" data-attr='Hide'>Show</button>
<script>

$(document).ready(function(){
   $('.show_btn').click(function(){
       var attr =$(this).attr('data-attr');
       var text =$(this).text();
       $(this).text( attr );
       $(this).attr('data-attr', text );
   });
});
</script>