3

IE9では機能するがFireFoxでは失敗するjQueryコードを作成しました。

このコードは、jQuery UIを使用して、PHPページによって生成された一連のアイテムを含むjQueryダイアログを作成しています。ユーザーが選択を行い、選択したアイテムを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_listdivタグに追加されます。

IE9はテキストをdivに追加しますが、FireFoxはアラートを表示するだけで、何もしません。

私は何が間違っているのですか?

4

1 に答える 1

2

火のバグをアンインストールしてみてください、それはいくつかの研究をしている間問題のようです。

編集済み

これを試して:

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に渡す必要があると思います.append()

どうなるか教えてください。

于 2013-03-18T13:19:57.000 に答える