我编写了一个可以在IE9中运行但在FireFox中失败的jQuery代码。
代码使用jQuery UI创建一个jQuery对话框,其中包含由PHP页面生成的一组项目。用户将进行选择,并且应使用JS函数将所选项添加到div容器中。
以下是我的代码:
$(function() {
$("#add-item-dialog").dialog({
autoOpen: false,
height: 600,
width: 800,
modal: true,
close: function() {
$( this ).dialog( "close" )
return false;
}
});
$("#add-item")
.button()
.click(function() {
$( "#add-item-dialog" ).load('add_item.php').dialog('open');
});
});
function addItem(message){
alert(message);
$('#item_list').append(message + '<br>');
$("#add-item-dialog").dialog("close")
return false;
}
函数addItem的按钮是使用PHP动态创建的,如下所示:
<input type="button" name="Add Item" value="'.$item_name.'" onClick="addItem(this.value)">
预期输出是带有项目名称的警报...然后项目名称会附加到item_list
div标签。
IE9会将文本附加到div,但是,FireFox只显示警告,然后什么也不做。
我做错了什么?
答案 0 :(得分:2)
尝试卸载火虫,在进行一些研究时似乎是个问题。
<强> EDITED 强>
试试这个:
function addItem(message){
var tmp_msg = message;
alert(message);
$('#item_list').append(tmp_msg + '<br>');
$("#add-item-dialog").dialog("close")
return false;
}
可能.append()
问题是this.value
而不是仅仅获取实际值。
正如您之前所写alert()
确实有效,所以.append()
函数不起作用,我认为您需要从this.value
获取实际值,然后将其传递给{ {1}}。
让我知道它是怎么回事。