为什么单击事件调用模糊事件成功

时间:2015-04-20 12:51:41

标签: jquery asp.net .net click blur

我想动态填充下拉列表。所以我在.js文件中添加如下事件。

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 webservice:如果是第一次,则只调用此服务,否则不要使用。

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

此Web服务返回列表,我在success函数中添加了dropdownlist选项。仅显示我在成功函数中使用以下代码的部分代码。

var dropDown = $('viewCriteriaTemplateDropdown');

现在,填充下拉列表的代码然后:

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

这里dictCount是没有的。列表中的元素。

在此之后,我为改变和模糊编写单个函数,将dropList的大小减小到1。

现在我的问题是当我第一次点击列表时它正在调用成功函数完成该控件进入模糊事件。我不明白为什么会这样。由于进入模糊列表大小减少到1.但在下一次点击它不是调用模糊功能,因为它是第二次,并没有成功部分。

2 个答案:

答案 0 :(得分:0)

您元素上的.focus()似乎会产生模糊事件,即使您的元素已经有焦点。

请参阅此Fiddle,然后多次点击该按钮。

尝试删除这个:dropDown.focus();

答案 1 :(得分:0)

通过删除点击事件并在此处填充下拉列表来解决问题

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