【发布时间】:2015-04-20 12:51:40
【问题描述】:
我想动态填充下拉列表。所以我在我的 .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 服务返回列表,我在成功函数中添加到下拉列表选项中。为了只显示部分代码,我在成功函数中使用了以下代码。
var dropDown = $('viewCriteriaTemplateDropdown');
现在,填充下拉列表的代码,然后:
dropDown.style.height = 'auto';
dropDown.size = (dictCount > 10 ? 10 : dictCount);
dropDown.selectedIndex = -1;
dropDown.focus();
这里 dictCount 不是。列表中的元素。
在此之后,我正在为更改和模糊编写单个函数,这将 dropList 的大小减小到 1。
现在我的问题是当我第一次单击列表时,它在完成该控件时调用成功函数转到模糊事件。我不明白为什么会这样。因为进入模糊列表大小减少到1。但是在下一次点击它没有调用模糊函数,因为它是第二次并且没有进入成功部分。
【问题讨论】:
-
var dropDown = $('viewCriteriaTemplateDropdown');必须是var dropDown = $('#viewCriteriaTemplateDropdown'); -
这样试试还是一样。
-
尝试发布html。
-
-
html 我的意思是整个 html 用 id viewCriteriaTemplateDropdown 包装元素。您的问题似乎是 jquery 事件委托问题(必要时使用事件委托)
标签: jquery asp.net .net click blur