按钮文字单击以更改循环按钮

时间:2018-09-05 14:57:34

标签: javascript onclick buttonclick

当用户单击“收件人列表”按钮时,按钮文本应更改为“正在加载...”。这些按钮位于For循环中。我猜id属性方法无法正常工作。逻辑是当用户单击“收件人列表”按钮时,该按钮将更改为“正在加载...”并加载它要转到的页面。

@foreach($groups as $group)
  <div class="col-lg-4 col-md-6 col-sm-6">
    <div class="card card-stats">
      <div class="card-header card-header-success card-header-icon">
         <div class="card-icon">
            <i class="material-icons">store</i>
         </div>
         <a class="btn btn-info p-2" href="{{action('ReceiverController@index', $group)}}">
           <i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i>
               Receiver List
         </a>
      </div>                                    
    </div>
  </div>

2 个答案:

答案 0 :(得分:1)

只需使用JavaScript的内联onclick事件:

<a class="btn btn-info p-2" onclick="this.innerHTML='loading...'" href="{{ action('ReceiverController@index', $group) }}">
    <i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i>
    Receiver List
</a>

如果还需要按钮图标:

<a class="btn btn-info p-2" onclick="clickfunc(this)" href="{{ action('ReceiverController@index', $group) }}">
    <i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i>
    Receiver List
</a>

<script>
clickfunc = function(obj) {
    obj.innerHTML = '<i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i> loading...';
}
</script>

答案 1 :(得分:0)

假设p-2类是这些按钮所独有的,这应该足够简单:

$(document).on('click', '.p-2', function(){
    let html = `<i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i>
           Loading...`
    $(this).html(html);
});

如果p-2不是唯一的,则只需添加其他一些唯一的类名。

或者没有jquery:

function load(){
     let html = `<i class="fa fa-list-ol" style="height:55px; width:30px;" aria-hidden="true"></i>
           Loading...`
    this.innerHTML = html;
}
document.getElementsByClassName('.p-2').addEventListener("click", load);