我们网站的页面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人群可以完成。
请帮忙。 : - )
答案 0 :(得分:1)
尝试用这个替换第一行:
jQuery(document).on('change', 'div.amfinder-horizontal td:nth-child(5) select',function () {
这将适用于在调用代码后添加的元素,这是使用AJAX渲染页面部分时必须具备的内容。
在此处阅读委派活动:http://api.jquery.com/on/