jQuery - 无法更改用AJAX填充的选择框的值

时间:2013-12-05 20:50:36

标签: javascript ajax jquery

我们网站的页面can be seen here,问题与内容区域顶部的年份,制作,模型小部件有关。当选择一年,品牌,型号,子模型和引擎时......部件类型是下一个下拉列表,它的值(与其他值一样)通过AJAX填充。不幸的是,我正在尝试根据此人所在的类别设置此值,并且实际上将完全隐藏该字段。

我正在使用以下代码尝试此操作 -

jQuery('div.amfinder-horizontal td:nth-child(5) select').change(function () {
    jQuery("div.amfinder-horizontal td:nth-child(7) select").append('<option value="0">Position</option>');
    jQuery(this).parent().addClass('active');
    jQuery(".popover").hide();
    jQuery("#popover6").show();
    jQuery("div.amfinder-horizontal td:nth-child(6) select option").each(function() { this.selected = (this.text == "Windshield Wiper Blade"); });
    jQuery("div.amfinder-horizontal td:nth-child(6) select option").change();
    // The following two lines are commands for a Prototype script, in place to simulate the change event
    $('finder-4023--20454').simulate('click'); // This is the ID of the select element ( it is the same as div.amfinder-horizontal td:nth-child(6) select )
    $('finder-4023--20454').simulate('change'); // This is the ID of the select element ( it is the same as div.amfinder-horizontal td:nth-child(6) select )
    console.log('Changed!');
});

我相信发生的事情是发生了AJAX,然后更改事件尝试在AJAX函数完成之前触发。 AJAX是一个Prototype脚本,我不太愿意改变它。相反,我想知道我是否可以简单地延迟更改并模拟事件一段时间,以便AJAX人群可以完成。

请帮忙。 : - )

1 个答案:

答案 0 :(得分:1)

尝试用这个替换第一行:

jQuery(document).on('change', 'div.amfinder-horizontal td:nth-child(5) select',function () {

这将适用于在调用代码后添加的元素,这是使用AJAX渲染页面部分时必须具备的内容。

在此处阅读委派活动:http://api.jquery.com/on/