2015-07-24 5 views
0

Я создал классный блок выбора в Angularjs, все коды работают нормально, без проблем, единственная проблема, с которой я столкнулся, не повезло решить эту проблему:Закройте selectbox при нажатии за его пределами

Пусть говорят ниже мой выбор окно разметки:

<div id="selectBoxContainer" ng-click="isOpen=!isOpen"> 
    <span>Title</span> 
    <input type="text" ng-model="q"> 
</div> 
    <ul id ="selectboxResult" ng-show="isOpen"> 
    <li ng-repeat="r in result">{{r}}</li> 
    </ul> 

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

Проблема:

Когда я нажимаю вне этого DIV (в любом месте за пределами) Я хочу, чтобы это выбрать окно будет закрыто (IsOpen = ложь), я знаю, что я должен поймать document.click событие и что-то с этим, но я не уверен, как его использовать.

+0

пытаются использовать потерять фокус 'blur',' focusout' события – Sherlock

+3

http://stackoverflow.com/questions/152975/how-to-detect-a-click -outside-an-element – Hearner

+0

Что-то, о чем нужно подумать: отображает ли ваш блок выбора все функциональные возможности доступности стандартного и работает последовательно во всех браузерах? –

ответ

0

Попробуйте использовать приведенную ниже ссылку, если она работает с вами.

http://plnkr.co/edit/4J7jBQ?p=preview

<select ng-model='selectedIndex' ng-class="disabled"}}"> 
<option ng-repeat='student in students' value='{{$index}}'> 
    {{student.id}} - {{student.name}} 
</option> 

+1

Я не думаю, что это ответ на этот вопрос, потому что сам вопрос не упоминает об использовании элемента select html – Milad

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