2015-04-20 3 views
1

Я хотел динамически заполнить выпадающий список. Таким образом, я добавляю в файл .js следующее событие.Почему событие event вызывает размытие события на sucess

jQuery('#viewCriteriaTemplateDropdown').click(jQuery.proxy(this.PopulateTemplateDropdown, this)); 
jQuery('#viewCriteriaTemplateDropdown').change(jQuery.proxy(this.SelectTemplateDropdownBlur, this)); 
jQuery('#viewCriteriaTemplateDropdown').blur(jQuery.proxy(this.SelectTemplateDropdownBlur, this)); 

в PopulateTemplateDropDown Я звоню .net веб-сервиса следующим образом: Если это первый раз, чем только назвать эту услугу иначе donothing.

GetDisplayTemplates(
     si.ScreenTypeId, 
     si.ScreenContextId, 
     jQuery.proxy(this.PopulateTemplateDropdownSuccess, this), 
     jQuery.proxy(this.PopulateTemplateDropdownFailure, this)); 

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

var dropDown = $('viewCriteriaTemplateDropdown'); 

Теперь код заселить DropDownList, а затем:

dropDown.style.height = 'auto'; 
dropDown.size = (dictCount > 10 ? 10 : dictCount); 
dropDown.selectedIndex = -1; 
dropDown.focus(); 

здесь dictCount нет. элемента в списке.

После этого я пишу одну функцию как для изменения и размытости что уменьшило размер выпадающего списка 1.

Теперь моя проблема, когда я первый нажмите на список Он зовет функцию успеха по завершению этого контроля идет для размытия события. Я не понимаю, почему это происходит. Из-за перехода в размер списка размытия уменьшается до 1. Но в следующий клик Это не вызов функции размытия, поскольку это второй раз и не идет в успешную часть.

+0

'вар DropDown = $ ('viewCriteriaTemplateDropdown');' должен быть ' var dropDown = $ ('# viewCriteriaTemplateDropdown'); ' – dsharew

+0

попробуйте этот способ тоже по-прежнему. – agm92

+0

Попробуйте опубликовать html. – dsharew

ответ

0

Проблема решена путем удаления события щелчка и заполнения раскрывающегося списка в готовом как этот

var con = this; 
    jQuery(document).ready(function() { 
     con.PopulateTemplateDropdown(); 
    }) 
0

Кажется, что .focus() на вашем элементе создает событие размытия, даже если ваш элемент уже имеет фокус.

См. Это Fiddle, и нажмите кнопку несколько раз.

Попытка удалить это может быть: dropDown.focus();

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