2011-03-26 124 views
0

我有一個表單,其中有使用jquery克隆的元素。所以可能有多個< select>具有相同的類名稱,但不同的id例如。 <select name="ticket1" id="ticket1" class="ticket">Jquery抓取選擇的id,其中有多個選擇具有相同的類名稱

從選擇節目的選擇/隱藏着一個<div id="hide1" class="hide">...</div> 這個jQuery代碼...

$(document).ready(function(){ 
    $('.hide').hide(); 
    $('select.ticket').change(function(){ 

    var hideNo=this.id.substr(6); 
    console.log('This='+this); //debug for firebug 
    console.log('Id='+hideNo);//debug for firebug 
    console.log('Value='+this.value);//debug for firebug 
    $('#hide'+hideNo).toggle(this.value == 'child'||this.value == 'youth'); 
    }); 
    $(".ticket").change(); 
}); 

Works的第一個ID,但沒有任何後續的。

我是不是做錯了?

+0

在此之後添加了克隆嗎? – Marc 2011-03-26 22:33:19

回答

0

嘗試改變上面代碼中的第三行:

$('select.ticket').live("change", function(){ 
+0

它現在在頭部工作,但不是身體!我想在它的身體,因爲它會成爲一個wordpress插件的一部分,我需要能夠改變一些值...'$(document).ready(function(){ $('。hide') .hide(); $( '票 ')生活(' 變',函數(){// 現場處理程序調用 VAR hideNo = this.id.substr(6); \t $('# hide'+ hideNo).toggle(this.value =='3'|| this.value =='2'); }); });'爲什麼它不在身體中工作? – 2011-03-28 11:06:43

+0

沒有看到腳本和標記的順序,我不知道。 – Marcel 2011-03-28 11:15:22

+0

其實這是有幫助的 - 所以它不是那個代碼只會在頭上工作!其他的東西一定是錯的! – 2011-03-28 17:02:37

0

要麼使用live()delegate()因此事件處理程序適用於選擇當前或將來添加匹配的任何元素。

另一種選擇,如果你使用內置的.clone()方法。您可以使用.clone(true)克隆與該元素相關的任何數據和事件。

相關問題