2011-01-12 91 views
4

我的腳本有點問題。jQuery select,.change和.click

目標:我有一個select有幾個選項,如果您選擇值爲'4'的選項,選擇將刪除,在這個地方我需要在span標籤中插入輸入[type = text]和單詞「remove」。現在,當你點擊這個跨度,先前插入輸入和跨度將刪除,並在這個地方,我需要把我以前刪除選擇

我希望這是有道理:-)內部形狀

這裏我的HTML代碼ID = F9:

<label class="mandatory" for="ctrl_54">Title</label> 
<select class="select mandatory" id="ctrl_54" name="title"> 
    <option value="1">Books</option> 
    <option value="2">Movies</option> 
    <option value="3">Events</option> 
    <option value="4">other...</option> 
</select> 

和我的JS:

function be_forms() { 

    var myselect = $('form#f9 select#ctrl_54'); 

    if ($('form#f9').length) { 
     $('form#f9 select#ctrl_54').change(function() { 
      if ($(this).val() == 4) { 
       $('form#f9 select#ctrl_54').remove(); 
       $('<input type="text" value="" class="text innyinput mandatory" id="ctrl_54" name="title" /><span class="remove">remove</span>').insertAfter('form#f9 label[for=ctrl_54]'); 
       $("form#f9 span.remove").click(function(){ 
        $('form#f9 input#ctrl_54').remove(); 
        $('form#f9 span.remove').remove(); 
       $(myselect).insertAfter('form#f9 label[for=ctrl_54]'); 
    }); 
      } 
     }); 
    } 

} 

現在幾乎萬物的作品。我的意思是當我選擇值爲4的選項 - 選擇是刪除並顯示輸入和跨度。當我點擊這個跨度時,我的選擇再次出現,輸入和跨度被刪除。 但是現在,如果我再次選擇值爲4的選擇選項 - 沒有任何反應。我想再次做 - 刪除選擇,插入輸入和跨度等...

對不起,我的母語爲英語。

回答

2

您將不得不在此處使用.live()

$('#ctrl_54').live("change", function() { 
+1

或包裹這裏面`$(文件)。就緒(函數(){...});` – 2011-01-12 13:02:00

+0

非常感謝您! – Qrczak 2011-01-12 13:12:32

9

從jQuery 1.7開始,不推薦使用.live()方法。使用.on()附加事件處理程序。舊版本jQuery的用戶應優先使用.delegate()而不是.live()

http://api.jquery.com/live/