указатель мыши в меню

0

Мне нужно просмотреть флажок, когда мышь находится над <li>. Поэтому изначально в меню li есть только метка (все внутри ng-repeat). Когда я перехожу через один из них, он меняет флажок. Конечно, когда мышь опустится, он возвращается к этикетке. Я пробовал, но он не работает, и он всегда просматривает оба (флажок и метка). Это код с jsfiddle:

http://jsfiddle.net/HB7LU/20368/

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.all_titles = [
        "Title 1",
        "Title 2",
        "Title 3",
        "Title 4"
        ];

    $scope.checkBoxSelection = false;

    $scope.OnMouseOverCheckbox = function(value) {
        $scope.checkBoxSelection = value;
    }
}
<div ng-controller="MyCtrl">
    <ul>
        <li id="$index" ng-repeat="title in all_titles" ng-mouseover="OnMouseOverCheckbox(true)" ng-mouseleave="OnMouseOverCheckbox(false)">
            <input type="checkbox" data-ng-if="checkBoxSelection == true" ng-model="data.cb1" aria-label="Checkbox 1"/>
            <a data-ng-if="checkBoxSelection == false">{{title}}</a>
        </li>
    </ul>
</div>

Все используется с директивами AngularJs и ng-mouseover/ng-mouseleave

Теги:
mouseover

1 ответ

1

Я создал изолированную переменную showCheckbox для каждого элемента списка и использую его для отображения/скрытия флажка на mouseover/mouseleave соответственно. Я использую ng-show вместо ng-if.

<div ng-controller="MyCtrl">
    <ul>
        <li ng-repeat="title in all_titles" ng-init="showCheckbox=false" ng-mouseover="showCheckbox = true" ng-mouseleave="showCheckbox = false">
            <input type="checkbox" ng-show="showCheckbox" ng-model="data.cb1" aria-label="Checkbox 1" /> <a data-ng-if="checkBoxSelection == false">{{title}}</a>    
        </li>
    </ul>
</div>

Теперь флажок будет виден только при наведении курсора мыши. См. Скрипку

  • 0
    это не работает. Я не думаю, что это проблема ... также, может быть проблема, которая может изменить все <li> на, а не только ту, на которой я остановился в этот момент .. Понять?
  • 0
    подожди, я не хочу ставить галочку, а только показывать. это правильная скрипка: jsfiddle.net/HB7LU/20369 покиньте ng-модель сейчас. Не волнуйся об этом. И если вы попробуете по-своему, то установите флажок «Все», а не тот, в котором вы оказались.
Показать ещё 5 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню