jQuery select,.change和.click

Qrc*_*zak 4 jquery select 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>
Run Code Online (Sandbox Code Playgroud)

和我的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]');
    });
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

而现在几乎每件事都有效.我的意思是当我选择值为4的选项时 - 选择删除并显示输入和跨度.当我单击此跨度时,我的选择再次出现,输入和跨度被删除.但是现在如果我在我的选择选项中再次选择值为4 - 没有任何反应.我想再做一次 - 删除选择,插入输入和跨度等等...

对不起我的英语我不是母语.

Mao*_*any 9

从jQuery 1.7开始,该.live()方法已被弃用.使用.on()附加的事件处理程序.旧版jQuery的用户应该.delegate()优先使用.live().

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

  • 这应该是对另一个答案的评论; 它本身并不是一个完整的答案. (4认同)