IE中的jQuery on()更改

使用jQuery 1.7.1,我试图在下拉列表中为change事件创建一个事件处理程序。 下拉列表会动态添加到DOM中。 似乎在大多数浏览器上都能很好地工作,但哦,那个怪异的IE8想要变得困难。 有解决方法吗? 这有用吗? 我在这里和其他地方做了很多阅读,在许多情况下输入似乎是相互矛盾的,我发现/尝试过的建议解决方案对我没用。

任何人都可以澄清这是否应该在IE8中用于.state-seletor创建的.state-seletor下拉列表?

 $( document ).on( 'change', '.state-selector', function( e ) { e.preventDefault(); alert( 'ON()' ); }); 

我会继续四处寻找,但如果有人能在我失去理智之前清除它,我会很感激。

谢谢。

UPDATE

在@ Wertisdk的请求下面,这是我的下拉片段:

  Select a state... Alaska Alabama ... Wisconsin West Virginia Wyoming  

更新2

对于@ mblase75而言,也许用于生成动态下拉列表的方法很重要。 本质上,我正在克隆现有的DOM节点并清空那里选择的值。 应该注意, .additionalink a也是动态生成的。 单击.addtionallink a ,正在克隆的模板包含一个新的.addtionallink a节点:

 $( document ).on( 'click', '.additionallink a', function( e ) { e.preventDefault(); var copy = $( this ).closest( '.template' ).clone(); // Massage the template copy's content and insert it // - Clear the value selected in the original dropdown // - Clear the list of counties loaded based on the original dropdown selection $( '.state-selector', copy ).val( $( '.state-selector option:first', copy ).val() ); $( '.counties', copy ).empty(); $( this ).closest( '.template' ).after( copy ); }); 

更新3

这是一个类似的JSFiddle 。 这几乎是我的代码,但有一个关键的区别可能是所有的差异。 这个小提琴使用.append()根据状态选择插入新内容。 我的代码使用.load()方法。 否则,它都是一样的。

我认为这里的神奇词是.clone() ,你可能会遇到这个已经在1.7.2 beta中修复过的bug: http : //bugs.jquery.com/ticket/11076