• 学习js、jquery、vue实现部分组件


    通过js实现radio小组件,最终效果如下

    html代码:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <title>js实现radio功能</title>
      </head>
      <body>
        <script src="../js/jsRadio.js"></script>
        <script>
          var strs = [
            
          ]
          for (var i = 0; i < 50; i++) {
            var rId = "r"+i;
            var st2 = [
              { name: rId, value: "A" },
              { name: rId, value: "B",disabled:true },
              { name: rId, value: "C" }
            ];
            strs.push(st2)
          }
          createRadios(strs);
          
        </script>
      </body>
    </html>

    js代码:

    
    
    function createRadios(data){
        for(var j = 0;j < strs.length;j++){
            var divStr = "<div id='" + (j+1) + "'>" + "题目" + j + " </div>"
            for(var i = 0;i<strs[j].length;i++){
                if(strs[j][i].disabled){
                    divStr += strs[j][i].value+"<input type = 'radio' disabled name = '" + strs[j][i].name + "value='"+strs[j][i].value+"' />"
                }else{
                    divStr += strs[j][i].value+"<input type = 'radio' name = '" + strs[j][i].name + "value='"+strs[j][i].value+"' />"
                }
            }
            divStr += "</div>"
            document.write(divStr)
          }
    }
    
    

    通过jQuery实现方式;

    html代码:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>jQuery实现radio</title>
      </head>
      <body>
        <script src="../js/jquery-2.0.0.js"></script>
        <script src="../js/jQueryRadio.js"></script>
        <div id="app"></div>
        <script type="text/javascript">
          var strs = []
          for (var i = 0; i < 50; i++) {
            var rId = 'r' + i
            var st2 = [
              { name: rId, value: 'A' },
              { name: rId, value: 'B', disabled: true },
              { name: rId, value: 'C' }
            ]
            strs.push(st2)
          }
          $('#app').createRadio(strs)
        </script>
      </body>
    </html>

    js代码:

    ;(function ($) {
      $.fn.extend({
        createRadio: function (strs) {
          for (let i = 0; i < strs.length; i++) {
            var html = ''
            const str = strs[i]
            html = '<div>'
            html += '题目' + (i + 1) + '</div>'
            for (let j = 0; j < str.length; j++) {
              const st = str[j]
              html += st.value + "<input type='radio' name='" + st.name + "' value='" + st.value + "'>"
            }
            $(this).append(html)
          }
        }
      })
    })(jQuery)

    通过vue实现:

    组件代码:

    <template>
      <div>
        <div v-for="(str,index) in msgs" :key="index">
            <div>题目{{index+1}}
                <div v-for="(st,index) in str" :key="index">
                    <div v-if="st.disabled == true">
                    {{st.value}}<input type="radio" disabled :name="st.name" :value="st.value"/>
                    </div>
                    <div v-else>
                        <div v-if="st.value == defaultV">
                            {{st.value}}<input type="radio" :name="st.name" :value="st.value" checked/>
                        </div>
                        <div v-else>
                            {{st.value}}<input type="radio" :name="st.name" :value="st.value"/>
                        </div>
                    </div>
                </div>
            </div>
        </div>
      </div>
    </template>
    
    <script>
    export default {
      name: 'VueRadio',
      props: {
        msgs: Array,
        defaultV:String
      }
    }
    </script>

    调用组件代码:

    <template>
      <div id="app">
        <VueRadio :msgs="strs" :defaultV="defaultValue"/>
      </div>
    </template>
    
    <script>
    import VueRadio from './components/VueRadio.vue'
    
    export default {
      components: {
        VueRadio
      },
      data() {
          return {
              strs: [],
              defaultValue:"A"
          }
      },
      created() {
          var strsTemp = []
          for (var i = 0; i < 30; i++) {
            var rId = "r"+i;
            var st2 = [
              { name: rId, value: "A" },
              { name: rId, value: "B",disabled:true },
              { name: rId, value: "C" }
            ];
            strsTemp.push(st2)
          }
          this.strs = strsTemp;
      }
    }
    </script>

    vue实现组件是进行了优化,添加了默认disabled和默认选中的值的实现

  • 相关阅读:
    多种语言求n的阶乘
    (转)Bullet 物理引擎 简析[1]
    (转)Bullet 引擎 详解 DBVT 分析
    (转载)C Runtime Library(MSVCRT)来历
    (转)角色蒙皮
    计算两向量的旋转角(转)
    lua中文教程(第二章 类型和值)
    lua中文教程(第一章 起点)
    (转)Bullet 引擎 详解 碰撞事件 回调函数
    (转)Bullet 3D 物理引擎 简析(2)
  • 原文地址:https://www.cnblogs.com/qcq0703/p/14438536.html
Copyright © 2020-2023  润新知