2016-10-26 2 views
0

, когда я пытаюсь открыть всплывающее окно, нажмите кнопку «Не открывать» при первом нажатии. Я использую J Query with Angular js для открытия правой стороны всплывающего окна при нажатии кнопки, но у меня проблема, открывающая его. при нажатии кнопки мыши я написал этот код., почему нужно дважды щелкнуть первый раз, чтобы загрузить jquery?

, когда я нажмите на эту кнопку <a type="button" class="btn border-button cd-btn" ng-click="Bookservice(item)">Book</a>

$scope.Bookservice=function(item) 
{ 
    $('.cd-btn').on('click', function(event){ 
     event.preventDefault(); 
     $('.cd-panel').addClass('is-visible'); 
    }); 
    //clode the lateral panel 
    $('.cd-panel').on('click', function(event){ 
    if($(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close')) { 
     $('.cd-panel').removeClass('is-visible'); 
     event.preventDefault(); 
     } 
    }); 
} 

и всплывающее окно кода что-то вроде этого

<div class="cd-panel from-right"> 
    <a href="#0" class="cd-panel-close">Close</a> 
    <div class="cd-panel-container"> 
     <div class="cd-panel-content"> 

из этого кода я пытаюсь открыть всплывающее окно, когда я нажимаю на кнопку в то время использовать предыдущий код, который я написал, но он не открывается при первом щелчке, когда я нажимаю второй раз на кнопку в это время, открывая всплывающее окно. поэтому, я хочу, чтобы мое всплывающее окно было открыто при первом щелчке после загрузки страницы.

Благодаря

+0

Почему вы помещаете в $ (". cd-panel")? – Araz

+0

Я ничего не знаю об этом, я просто скопирую этот код. –

+0

ya это класс моего диалогового окна –

ответ

1

Вы подключаете событие щелчка, когда Bookservice(item) называется.

Путь $('.cd-panel').addClass('is-visible'); это в функции книжной службы.

$scope.Bookservice=function(item) 
{ 
    $('.cd-panel').addClass('is-visible'); 
    //clode the lateral panel 
    $('.cd-panel').on('click', function(event){ 
    if($(event.target).is('.cd-panel') || $(event.target).is('.cd-panel-close')) { 
     $('.cd-panel').removeClass('is-visible'); 
     event.preventDefault(); 
     } 
    }); 
} 
+0

да я использую его на кнопке ng-click event –

+0

Привет, человек, это работа. –

1
$scope.Bookservice=function(item) 
{ 
    $('.cd-btn').on('click', function(event){ 
     event.preventDefault(); 
     if(!$(this).hasClass("is-visible")) 
     $('.cd-panel').addClass('is-visible'); 
     else 
     $('.cd-panel').removeClass('is-visible'); 
    }); 
    //clode the lateral panel 

    } 

и использование нг щелкните на ваш взгляд

+0

Нет, это не может работать для меня, ему нужно все время двойного щелчка и в моем коде нужно только однократное двойное нажатие после загрузки страницы. –

0

логика, связанная с манипуляцией DOM не должен быть написана в $ области видимости функции контроллера, я думаю, что вы делаете так, пожалуйста, создать директиву, чтобы показать всплывающие и реализовать логику для манипулирования DOM там Эта ссылка Open custom Pop up in Angular имеет правильный подход к внедрению для вашей проблемы

Смежные вопросы