Как получить значение указанного c нажатого элемента, используя JQuery - PullRequest
0 голосов
/ 05 мая 2020

У меня сейчас проблема с получением значения children-id, которое я передаю элементу. Основная проблема здесь в том, что я могу получить значение только в том случае, если функция щелчка находится внутри l oop, и если я щелкну по тегу, он будет предупреждать 3 раза или больше, чем предупреждение, потому что функция при щелчке находится внутри l oop. Есть ли способ решить проблему, если я удалю функцию щелчка внутри l oop?

Основная цель: предупредить значение атрибута data-attri-children-id, если я нажму подкатегорию только за 1 раз, не более 1.

Чтобы лучше понять, я покажу вам свой образец кода, который я уже создал, и показанный результат.

Html 2 Страница Родительская страница / Дочерняя страница:

<ul id="tree1">
@foreach($categories as $category)
    <li data-attri-parent_id="{{$category->id}}">
        {{ $category->title }}
        @if(count($category->childs))
            @include('/SuperAdmin/manage_child',['childs' => $category->childs])
        @endif
    </li>
@endforeach

    <ul>
@foreach($childs as $child)
    <li data-attri-children-id="{{$child->parent_id}}">
        {{ $child->title }}
    @if(count($child->childs))
            @include('/SuperAdmin/manage_child',['childs' => $child->childs])
        @endif
    </li>
@endforeach
</ul>

Скрипт:

    $.fn.extend({
    treed: function (o) {

        var openedClass = 'far fa-minus-square';
        var closedClass = 'far fa-plus-square';

      if (typeof o != 'undefined'){
        if (typeof o.openedClass != 'undefined'){
        openedClass = o.openedClass;
        }
        if (typeof o.closedClass != 'undefined'){
        closedClass = o.closedClass;
        }
      };

        //initialize each of the top levels

        var tree = $(this);

        tree.addClass("tree");


        tree.find('li').has("ul").each(function () {

            var branch = $(this); //li with children ul

            branch.prepend("<i class=' " + closedClass + "'></i>");

            branch.addClass('branch');

            tree.find('li').not('li.branch').css( "cursor", "pointer" );

            // tree.find('li').not('li.branch').addClass('last');
            $('tree > li:not(.branch) li').addClass('last');

            tree.find('li').not('li.branch').attr('data-toggle', 'modal');
            tree.find('li').not('li.branch').attr('data-target', '#parentModal');

            branch.on('click', function (e) {
                if (this == e.target) {
                    var icon = $(this).children('i:first');

                    icon.toggleClass(openedClass + " " + closedClass);

                    tree.find('li.branch').removeClass('last');

                    tree.find('li.branch').css( "cursor", "text" );
                    tree.find('li.branch').addClass( "cursor", "text" );

                    tree.find('li.branch').removeAttr('data-toggle', 'modal');
                    tree.find('li.branch').removeAttr('data-target', '#parentModal');



                    $(this).children().children().toggle();

                    if (branch.find('li').last()) {
                        branch.find('li').last().css( "cursor", "pointer" );
                        branch.find('li').last().addClass('last');
                        branch.find('li').last().attr('data-toggle', 'modal');
                        branch.find('li').last().attr('data-target', '#childrenModal');
                    }
                }
            })


            branch.children().children().toggle();

            $(branch.find('li').last()).on('click',function(){
                alert($(this).attr('data-attri-children-id'));
            });

        });



        // $(('li').last()).on('click',function(){
        //     alert($(this).attr('data-attri-children-id'));
        // });

        $(tree.find('li').not('li.branch')).on('click',function(){
            alert($(this).attr('data-attri-parent_id'));
        });





        //fire event from the dynamically added icon
        tree.find('.branch .indicator').each(function(){
            $(this).on('click', function () {
                $(this).closest('li').click();


            });
        });

        //fire event to open branch if the li contains an anchor instead of text
        tree.find('.branch>a').each(function () {
            $(this).on('click', function (e) {
                $(this).closest('li').click();
                e.preventDefault();
            });
        });
        //fire event to open branch if the li contains a button instead of text
        tree.find('.branch>button').each(function () {
            $(this).on('click', function (e) {
                $(this).closest('li').click();
                e.preventDefault();
            });
        });
    }
});

//Initialization of treeviews

$('#tree1').treed();

Первая иллюстрация Нет Пока нажали:

First Illustration

Вторая иллюстрация Я получил значение для детей:

Second Illustration

Третья иллюстрация: third illustration

Четвертая иллюстрация: fourth image

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...