访问新构建元素的问题

时间:2011-10-10 18:35:45

标签: jquery

这个杀了我:(。我正在加载已保存的过滤器集并动态构建每个过滤器,在$ .get()响应函数内。我发现,即使我正确创建了唯一的ID我的每个选择和输入,我都无法在构建它们的函数内部访问这些输入的值。我尝试了多种方法为jQuery选择过程添加延迟但没有任何效果。

function onSavedFilterChange(item){
    $.get('url',
        function(response) {
            //filters with uniquely ID'd inputs get built here
            //Can't access them here, immediately after creation
        }
    );
    // Can't access them here either
}
$(document).ready(function(){
    $('#randomButton').click(function(){
        // but here, I can access the new inputs!!
    });
});

我添加元素的方式有点复杂,可能是我问题的根源。对于返回的每个保存的过滤器集,我首先克隆一个初始化的div并设置它的id属性:

newFilter = $('#initialFilter')
.clone()
.removeAttr('id')
.attr('id', 'fd_'+filterCount);

这个div有三个输入;前两个是选择,第三个可以是选择或文本输入。在克隆了div之后,我将第一个选择的值设置为:

var thisSelect = newFilter.find('select.filterBy');
var thisFieldName = rows[filterCount-1]['FIELD_NAME'];
thisSelect.val(thisFieldName);

接下来,根据thisFieldName的值,我使用另一个ajax调用构建第二个select的选项,并使用另一个ajax调用构建第三个输入。

它刚刚发生在我身上......因为我正在修改使用ColdFusion构建的现有站点,最后两个ajax调用是通过ExtJS ajax代理调用的。我敢打赌,ExtJS与jQuery的搭配并不好,我将不得不重写这两个函数。

无论是那个还是我疯狂地窝里接到电话来接听电话???

0 个答案:

没有答案