我的剧本有点问题。
目标:我有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 - 没有任何反应。我想再做一次 - 删除选择,插入输入和跨度等等......
对不起我的英语我不是母语。
答案 0 :(得分:9)
从jQuery 1.7开始,不推荐使用.live()
方法。使用.on()
附加事件处理程序。旧版jQuery的用户应优先使用.delegate()
{。{1}}。
答案 1 :(得分:2)
您必须在此处使用.live()
。
$('#ctrl_54').live("change", function() {