• amazeui学习笔记--js插件(UI增强2)--按钮交互Button


    amazeui学习笔记--js插件(UI增强2)--按钮交互Button

    一、总结

    1、按钮loading状态

    <button type="button" class="am-btn am-btn-primary btn-loading-example">Submit - Button</button>
    <input type="button" class="am-btn am-btn-primary btn-loading-example" value="Submit - Input" />
    
    $('.btn-loading-example').click(function () {
      var $btn = $(this)
      $btn.button('loading');
        setTimeout(function(){
          $btn.button('reset');
      }, 5000);
    });

    2、按钮loading状态自定义选项(功能)

    可以在元素上添加 data-am-loading 来设置选项:

    • spinner 加载动画图标,适用于支持 CSS3 动画、非 input 元素,写图标名称即可;
    • loadingText 加载时显示的文字, 默认为 loading
    • resetText 重置以后的显示的文字,默认为原来的内容。
    <button type="button" class="am-btn am-btn-primary btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText: '加载中...', resetText: '加载过了'}">按钮 - button 元素</button>
    
    <input type="button" class="am-btn am-btn-secondary btn-loading-example" value="按钮 - input 元素" data-am-loading="{loadingText: '努力加载中...'}" />
    
    $('.btn-loading-example').click(function () {
      var $btn = $(this)
      $btn.button('loading');
        setTimeout(function(){
          $btn.button('reset');
      }, 5000);
    });

    3、单按钮状态切换

     1 <button id="doc-single-toggle" type="button" class="am-btn am-btn-primary" data-am-button>切换状态</button>
     2 
     3 <p>按钮状态:<span id="doc-single-toggle-status" class="am-text-danger">未激活</span></p>
     4 
     5 <script>
     6   $(function() {
     7     var $toggleButton = $('#doc-single-toggle');
     8     $toggleButton.on('click', function() {
     9       setButtonStatus();
    10     });
    11 
    12     function setButtonStatus() {
    13       var status = $toggleButton.hasClass('am-active') ? '未激活' : '激活';
    14       $('#doc-single-toggle-status').text(status);
    15     }
    16   })
    17 </script>

    4、默认选中状态:  <label> 上添加 am-active 类名    <input> 上添加 checked 属性。

    5、单选框:

     1 <div class="am-btn-group doc-js-btn-1" data-am-button>
     2   <label class="am-btn am-btn-primary">
     3     <input type="radio" name="options" value="选项 1" id="option1"> 选项 1
     4   </label>
     5   <label class="am-btn am-btn-primary">
     6     <input type="radio" name="options" value="选项 2" id="option2"> 选项 2
     7   </label>
     8   <label class="am-btn am-btn-primary">
     9     <input type="radio" name="options" value="选项 3" id="option3"> 选项 3
    10   </label>
    11   <label class="am-btn am-btn-primary am-disabled">
    12     <input type="radio" name="options" value="选项 4" id="option4"> 选项 4
    13   </label>
    14 </div>
    15 <script>
    16   // 获取选中的值
    17   $(function() {
    18     var $radios = $('[name="options"]');
    19     $radios.on('change',function() {
    20       console.log('单选框当前选中的是:', $radios.filter(':checked').val());
    21     });
    22   });
    23 </script>

    6、复选框

    <div class="am-btn-group" data-am-button>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="苹果"> 苹果
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="橘子"> 橘子
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="香蕉"> 香蕉
      </label>
    </div>
    <script>
      $(function() {
        var $cb = $('[name="doc-js-btn"]');
        $cb.on('change', function() {
          var checked = [];
          $cb.filter(':checked').each(function() {
            checked.push(this.value);
          });
    
          console.log('复选框选中的是:', checked.join(' | '));
        });
      });
    </script>

    二、按钮交互Button

    Button JS 交互


    Button 及 Button group 与 JS 交互。

    按钮 loading 状态

    默认文字

    默认的文字为 loading...

     Copy
       
    <button type="button" class="am-btn am-btn-primary btn-loading-example">Submit - Button</button>
    <input type="button" class="am-btn am-btn-primary btn-loading-example" value="Submit - Input" />
     Copy
    $('.btn-loading-example').click(function () {
      var $btn = $(this)
      $btn.button('loading');
        setTimeout(function(){
          $btn.button('reset');
      }, 5000);
    });

    自定义选项

    可以在元素上添加 data-am-loading 来设置选项:

    • spinner 加载动画图标,适用于支持 CSS3 动画、非 input 元素,写图标名称即可;
    • loadingText 加载时显示的文字, 默认为 loading
    • resetText 重置以后的显示的文字,默认为原来的内容。
     Copy
       
    <button type="button" class="am-btn am-btn-primary btn-loading-example" data-am-loading="{spinner: 'circle-o-notch', loadingText: '加载中...', resetText: '加载过了'}">按钮 - button 元素</button>
    
    <input type="button" class="am-btn am-btn-secondary btn-loading-example" value="按钮 - input 元素" data-am-loading="{loadingText: '努力加载中...'}" />
     Copy
    $('.btn-loading-example').click(function () {
      var $btn = $(this)
      $btn.button('loading');
        setTimeout(function(){
          $btn.button('reset');
      }, 5000);
    });

    单按钮状态切换

     Copy

    按钮状态:未激活

    <button id="doc-single-toggle" type="button" class="am-btn am-btn-primary" data-am-button>切换状态</button>
    
    <p>按钮状态:<span id="doc-single-toggle-status" class="am-text-danger">未激活</span></p>
    
    <script>
      $(function() {
        var $toggleButton = $('#doc-single-toggle');
        $toggleButton.on('click', function() {
          setButtonStatus();
        });
    
        function setButtonStatus() {
          var status = $toggleButton.hasClass('am-active') ? '未激活' : '激活';
          $('#doc-single-toggle-status').text(status);
        }
      })
    </script>

    复选框

    注意:由于 FastClick 的原因,触屏设备上使用时需要在 input 上添加 .needsclick,否则无法获取复选框的值。

     Copy
    <div class="am-btn-group" data-am-button>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="苹果"> 苹果
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="橘子"> 橘子
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" name="doc-js-btn" value="香蕉"> 香蕉
      </label>
    </div>
    <script>
      $(function() {
        var $cb = $('[name="doc-js-btn"]');
        $cb.on('change', function() {
          var checked = [];
          $cb.filter(':checked').each(function() {
            checked.push(this.value);
          });
    
          console.log('复选框选中的是:', checked.join(' | '));
        });
      });
    </script>

    单选框

     Copy
    <div class="am-btn-group doc-js-btn-1" data-am-button>
      <label class="am-btn am-btn-primary">
        <input type="radio" name="options" value="选项 1" id="option1"> 选项 1
      </label>
      <label class="am-btn am-btn-primary">
        <input type="radio" name="options" value="选项 2" id="option2"> 选项 2
      </label>
      <label class="am-btn am-btn-primary">
        <input type="radio" name="options" value="选项 3" id="option3"> 选项 3
      </label>
      <label class="am-btn am-btn-primary am-disabled">
        <input type="radio" name="options" value="选项 4" id="option4"> 选项 4
      </label>
    </div>
    <script>
      // 获取选中的值
      $(function() {
        var $radios = $('[name="options"]');
        $radios.on('change',function() {
          console.log('单选框当前选中的是:', $radios.filter(':checked').val());
        });
      });
    </script>

    设置默认选中状态

    设置默认选中状态涉及两处:

    • <label> 上添加 am-active 类名(2.7.0+ 无需添加此类名);
    • <input> 上添加 checked 属性。
     Copy
    <div class="am-btn-group" data-am-button>
      <!--默认选中状态设置-->
      <label class="am-btn am-btn-primary am-active">
        <input type="checkbox" class="needsclick" name="doc-js-btn" value="苹果" checked> 苹果
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" class="needsclick" name="doc-js-btn" value="橘子"> 橘子
      </label>
      <label class="am-btn am-btn-primary">
        <input type="checkbox" class="needsclick" name="doc-js-btn" value="香蕉"> 香蕉
      </label>
    </div>
  • 相关阅读:
    net5:动态修改内存中的站点地图节点
    手动创建DataTable并绑定gridview
    文件转换成二进制流及二进制流转换成文件
    XML 增、删、改和查的实例【转】
    免费CSS鼠标样式代码大全
    C#连接数据库SQL(2005)
    关于hibernate4.3版本之后org.hibernate.service.ServiceRegistryBuilder被弃用
    史上最全的Maven Pom文件标签详解
    Readme.MD 例子
    GitHub中README.md文件的编辑和使用
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9014089.html
Copyright © 2020-2023  润新知