jQuery select,.change和.click

时间:2011-01-12 12:54:21

标签: jquery select click

我的剧本有点问题。

目标:我有select有几个选项,如果你选择值为'4'的选项将会删除,在这个地方我需要插入输入[type = text]和单词“remove”in跨度标签。现在,当您点击此跨度时,之前插入的输入和跨度将被移除,在此处我需要放置我之前删除的选择

我希望它有意义: - )

这里我的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 个答案:

答案 0 :(得分:9)

从jQuery 1.7开始,不推荐使用.live()方法。使用.on()附加事件处理程序。旧版jQuery的用户应优先使用.delegate() {。{1}}。

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

答案 1 :(得分:2)

您必须在此处使用.live()

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