JS: Создание определенных элементов класса скрытыми с помощью getElementsByClassName - PullRequest
0 голосов
/ 07 декабря 2018

Мой код:

<div  class="subManuSched'.$data2->ordernumber.'">
<div  class="subManuSched'.$data2->ordernumber.'">
<div  class="subManuSched'.$data2->ordernumber.'">
...onclick="hidediv('.$data2->ordernumber.')...


function hidediv(counter) {   
            document.getElementsByClassName('subManuSched'+counter)[0].style.visibility = 'hidden';
            alert('subManuSched'+counter);
    }

Я хочу скрыть несколько div с одним и тем же именем класса.С упомянутым Кодексом я не получаю ошибку, но также Ничего не происходит.$ data2-> ordernumber - это заданный параметр функции JS, названный там "counter".Предупреждение в конце показывает мне имя класса правильно, и я проверил его с помощью исходного кода.Я нашел здесь решения, которые очень часто помогали другим, но они никогда не работают с моим кодом.Не знаю почему!

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

Я решил проблему с тем кодом, который нашел в stackoverflow:

$this->html .= '<tr><td class="toggler" data="'.$data2->AUNR.$data2->Nr.'">P</td>';


    var DELAY = 700, clicks = 0, timer = null;
    $(function(){
        $(".toggler").on("click", function(e){
            clicks++;  //count clicks
            if(clicks === 1) {
                timer = setTimeout(function() {
                    alert("Single Click");  //perform single-click action    
                    $('.submanusched'+$(this).attr('data')).toggle();
                    clicks = 0;             //after action performed, reset counter
                }, DELAY);
            } else {
                clearTimeout(timer);    //prevent single-click action
                alert("Double Click");  //perform double-click action
                $('.submanusched'+$(this).attr('data')).toggle();
                clicks = 0;             //after action performed, reset counter
            }
        })
        .on("dblclick", function(e){
            e.preventDefault();  //cancel system double-click event
        });
    });

, но обрабатывается только вставленная строка в «Двойной щелчок»!Я вижу оба оповещения, но строка "Single Click" никогда не обрабатывается!У тебя есть идея почему?Что не так?

Спасибо за помощь!Stefan

0 голосов
/ 07 декабря 2018

У меня были похожие проблемы с «видимостью» при динамическом изменении его с JS, вы должны попробовать:

document.getElementsByClassName('subManuSched'+counter)[0].style.display = 'none';
...