我遇到了问题。我有两个列表,有多个选项。对于列表中任何选项的单击事件,选项中包含的文本将打印在标签上。问题是,当我执行移动(将元素移动到其他列表)时,click事件不再适用于列表中的新元素。
我已添加以下代码。感谢您的帮助。
<script>
function moveAll(from, to){
$('#'+from+' option').remove().appendTo('#'+to);}
function moveSelected(from, to) {
$('#'+from+' option:selected').remove().appendTo('#'+to);}
</script>
<b style="margin: 10px;">Our List</b>
<select id="to" name="to[]" style="width:100px;" size="8" multiple="multiple">
</select>
<a href="javascript:moveAll('from', 'to')" class="controls"><<</a>
<a href="javascript:moveSelected('from', 'to')" class="controls"><</a>
<a href="javascript:moveSelected('to', 'from')" class="controls">></a>
<a href="javascript:moveAll('to', 'from')" href="#" class="controls">>></a>
<b style="margin: 10px;">Other List</b>
<select id="from" name="from[]" class="fromList" size="8" multiple="multiple">
<option value="1">Item1</option>
<option value="3">Item 3</option>
<option value="2">Item 2</option>
<option value="x" disabled>Title</option>
</select>
<p id="Preview" class="Preview"></p>
<script type="text/javascript">
$(function(){
$("option").on("click", function(){
$('#QuestionPreview').html($(this).text());
});
});
</script>
答案 0 :(得分:0)
您尚未在新创建的getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
元素上分配点击事件处理程序。如果要将事件处理程序分配给将来出现的元素,可以将事件处理程序分配给已存在的父项(http://api.jquery.com/on)。
在您的情况下,这应该有效:
option
由于缺乏更好的选择,我使用$('body').on('click', 'option', function() {
$('#QuestionPreview').html($(this).text());
});
。理想情况下,它应该是您的body
和#from
元素的共同父元素。