3

我有一個由angularjsbootstrap製作的網頁,但不是ui-bootstrap無法通過一次點擊重新打開下拉列表

有一個drop-down listiframe。問題是,當下拉列表打開時,單擊iframe不會自動關閉下拉列表。

我跟着this answer,並添加如下:

$(window).on('blur',function() { $('.dropdown-toggle').parent().removeClass('open'); }); 

現在,點擊IFRAME並關閉下拉列表。但是,關閉後,單擊下拉按鈕將不會重新打開列表;我們必須點擊除iframe以外的地方,或點擊下拉按鈕一次,然後再次點擊下拉按鈕打開列表。

對不起,我不能在操場上重現問題,但它似乎是一個常見問題,「只有第二次點擊打開下拉列表」。我試圖刪除data-toggle="dropdown",但它沒有幫助。

有誰知道我可以嘗試解決問題嗎?

+0

這可能是因爲你需要外部頁面焦點再次觸摸下拉菜單。如果我正確理解問題。但想要嘗試的是將下拉列表包裝在ng-if中,並且當單擊i​​frame時關閉if語句,然後再重新將下拉列表呈現爲其自然狀態。 – floor

+0

我同意「在再次觸摸下拉菜單之前需要外部頁面焦點」,因爲即使我們多次點擊iframe區域,我們也必須點擊其他地方,然後單擊下拉按鈕重新打開它。但是,我不明白你說'ng-if'... – SoftTimur

+0

忘了ng - 如果我不認爲它會有所幫助。更多的替代使用jqlite – floor

回答

0

我終於得到它...

之前,我用了之後,並沒有採用bootstrap.js

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.11.0/ui-bootstrap-tpls.js"></script>. 

爲了避免在這個問題中提到的問題,我需要使用:

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> 
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/2.5.0/ui-bootstrap-tpls.js"></script> 

請注意,bootstrap.js是絕對需要的,而0.11.0是不夠的ui-bootstrap-tpls.js。 (*順便說一下,我以前有一個錯誤(不幸的是我不記得清楚),這是由於版本不夠高所致ui-bootstrap-tpls.js。真的需要記住,ui-bootstrap-tpls.js可能是你的問題,當你遇到一個棘手的js錯誤*)

+0

這是第一句話:我有一個網頁由angularjs和bootstrap製作,但不包含ui-bootstrap。我也想知道你的代碼如何在操場上工作。 – Gerard

+0

抱歉,有關錯誤的信息... – SoftTimur

0

,你可以嘗試用

$(window).on('blur',function() { 
    if($('.dropdown-toggle').parent().hasClass('open')){ 
    $(".dropdown-toggle").dropdown("toggle"); 
    } 
}); 

這更「引導」解決方案,如果openned將關閉元素,讓下拉作爲封閉下一個按一下火了開來。

+0

有了這段代碼,當我點擊iframe時,下拉列表將不會自動關閉... – SoftTimur

相關問題