jQuery代码在IE9中工作但在FireFox中失败了吗?

时间:2013-03-18 12:52:42

标签: javascript jquery jquery-ui firefox

我编写了一个可以在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只显示警告,然后什么也不做。

我做错了什么?

1 个答案:

答案 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}}。

让我知道它是怎么回事。