Плагин jquery.appear не работает, когда элемент появляется

0

Хорошо, я немного... смущен этим плагином. Я добавил скрипт в конце тела

<body>
    <div id="first"> 
          //a lot of text
    </div>
    <div id="second">
         //more text
    </div>
    <div id="leo">
        //here is where the plugin should work
    </div>
</body>
<script src="js/jquery.appear.js"></script>
</html>

это то, что у меня есть в файле js

app.controller('comparativaCtrl', function ($scope, $rootScope, $routeParams, $location, $http, Data) 
{
    $('#leo').appear();
      $(document.body).on("appear", "#leo", function() {
        alert("al fin");
    });
});

Однако ничего не происходит... Я проверил, и у меня есть jquery, и, кроме того, это не требует зависимостей, насколько я знаю.... Обратите внимание, что app.controller используется, потому что мой js-код находится в контроллере частичный (я использую Angular). Если кто-нибудь знает, почему это не работает, пожалуйста, дайте мне знать

  • 0
    Вы должны создать директиву обертки, чтобы использовать плагин
Теги:
plugins

2 ответа

0
Лучший ответ

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

app.directive('appearWrapper', [
    function() {
        return {
            restrict: "A",
            link: function(scope, element, attrs) {
                $(element)
                    .appear()
                    .on('appear', function() {
                        //Do the needful
                    });

            }
        };
    }
]);

Применение

<div appear-wrapper>
    //here is where the plugin should work
</div>

Хорошая статья jQuery Plugin в угловом приложении и "Мышление в AngularJS", если у меня есть фон jQuery?

1

Создайте новый файл directives.js и добавьте туда все свои функции jquery. В файле.cshtml просто укажите название директивы. Пример: customdirective.js

angular.module('directiveName', []).directive('appear', ['$window', function ($window) {
    return function (scope, element, attr) {
        var wndw = angular.element($window);
        scope.initAppear = function () {
//your code
    }
}]);

Flower.cshtml:

<body>
    <div id="first"> 
          //a lot of text
    </div>
    <div id="second">
         //more text
    </div>
    <div id="leo" appear>
        //here is where the plugin should work
    </div>
</body>
</html>

Ещё вопросы

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