2011-09-01 87 views
0

我有一些代碼克隆了一個HTML Select元素。克隆工作正常。Jquery動態元素名稱不能在IE7中工作

克隆的元件將具有一個id = {original_element_id} -1-

元件被克隆後,在IE7我無法選擇該元素。例如:

原始元素:

<select name="13"> 
    <option>Value 1 
    <option>Value 2 
</select> 

克隆元素:

<select name="13-1"> 
    <option>Value 1 
    <option>Value 2 
</select> 

我試試這個:

$("[name='13-1']").live('click',function() { 
    alert(1); 
}); 

這個工程在瀏覽器,但在IE7它不工作。

如何在IE7中選擇動態創建的元素?

我使用jQuery 1.4.2,我已經試過1.4.3,1.4.1,1.4.0,1.6.2

+3

看起來你這裏有沒有有效的HTML和沒有完成選擇在jQuery中使用''和jquery'$('input [name =「13-1」])。click(function(){});'。 – Samich

+1

問題在於,在向DOM中插入無效代碼時,IE總是非常挑剔,而其他瀏覽器則更加寬容/更好地糾錯。確保你正確地形成你的代碼,它應該工作。 – m90

回答

2

我過我的版本IE7和做工精細,改變你的腳本如下:

$(function() { 
    $("select[name='13-1']").live('click', function() { 
     alert(1); 
    }); 
}); 

鏈接:http://jsfiddle.net/LE9Ed/

UPDATE

動態HTML:http://jsfiddle.net/LE9Ed/1/

+0

在你的jsfiddle例子中,元素不會被克隆/動態添加。我懷疑這是IE – Tim

+0

中問題的原因.live click事件將處理動態元素。這是你的jQuery選擇器是不正確的...使用$(「選擇[名稱= '13 -1']」) –

+0

沒有,這只是一個錯字,它不工作 – Tim

1
$orig = $('select'); 

$orig.clone().attr('name', '13-1').appendTo('body'); 

$("[name='13-1']").live('click',function() { 
    alert(1); 
}); 
  1. 這裏有一個工作示例:http://jsfiddle.net/B5m6F/5/
  2. 也有一個失蹤支架,你正在使用的名稱屬性
+0

缺少的支架是我的文章中的一個錯字,仍然有問題 – Tim

+0

ps它在Chrome中工作正常 – Tim

+0

我的jsfiddle不適合你在IE7中工作嗎?還是我錯過了別的? –