在属性中使用随机整数的目的是什么?

时间:2018-02-19 11:51:23

标签: javascript jquery

我最近获得了一大堆代码来维护。我的前端体验有限,但使用

    let rand = Math.round(Math.random() * 9999999999);

    checkbox.setAttribute('data-id', rand);

看起来很奇怪。

有问题的功能:

/**
** Cancel edits in Panel
**
**/
cancel( scope ) {
    console.log("--------------------------------");
    console.log("Synapse: checkbox");
    let self = this;

    $('input[type="checkbox"]').each(function() {
        let rand = Math.round(Math.random() * 9999999999);
        let checkbox = document.createElement('i');
        checkbox.className = "fal fa-square checkbox";
        checkbox.setAttribute('data-id', rand);

        $('input[type="checkbox"]').parent().on('click', function () {
            if ($(this).find('[data-fa-processed]').hasClass('fa-check-square')) {
                $('#' + $(checkbox).data('id')).prop('checked', false);
            } else {
                $('#' + $(checkbox).data('id')).prop('checked', true);
            }
            $(this)
            .find('[data-fa-processed]')
            .toggleClass('fa-check-square')
            .toggleClass('fa-square');
        }).addClass('checkbox-parent');
        $(this).attr('id', rand).hide().before(checkbox);
    });
    // On click, select the hidden checkbox and change the square to a check-square
}

1 个答案:

答案 0 :(得分:0)

开发人员发现这是一种独特的方式。每个复选框图标<i>的标识符。它会隐藏复选框并显示一个图标,并相互关联&#34; rand&#34;数。 (复选框中的id属性和图标中的data-id属性。

添加了唯一标识符,以便为其提供参考。

对我来说,这是一种糟糕的方法(我同意Rory McCrossan):

  1. 好的,他正在使用一个随机的大号......但是,永远不会是两个具有相同价值的id?!这可能发生。

  2. 点击事件正在forEach循环中添加。可能这个事件多次被创造出来。这可能导致行为不端。

  3. 他可以利用他创建的与复选框和父级相关的位置。我认为,这样就可以在没有data-id的情况下在需要时更新和切换类。