2016-10-26 69 views
0

當我嘗試打開按鈕上的彈出窗口時,點擊它在第一次點擊時未打開。 我使用J查詢與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

雅是我的對話框的類 –

回答

1

要附加click事件時Bookservice(item)被稱爲

感謝

+0

是的,我使用它在按鈕ng單擊事件 –

+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 

    } 

和使用NG點擊。

$('.cd-panel').addClass('is-visible');這個在Bookservice函數中。

$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

沒有這個不能爲我工作,它需要所有的時間雙擊,並在我的代碼它只需要一次後雙擊加載頁面。 –

0

與DOM操作的邏輯不應在控制器的$範圍功能寫的,我覺得你這樣做,請創建指令顯示彈出和DOM操作實現邏輯存在,這個環節Open custom Pop up in Angular有適當的實施方法爲您的問題

相關問題