3

クリックして投稿ボタンで画像をアップロードするようにblueimpを構成しています。$('#fileupload').fileupload私の問題は、関数を呼び出していないことです。以下の JavaScript ファイルを含めました。以下は私のコードです。何が問題なのか見てください。

<head>
    <script  type="text/javascript" src="../../js/jquery.min.js"></script>
    <script  type="text/javascript" src="../../js/jquery-ui.js"></script>
    <script  type="text/javascript" src="../../js/jQuery-File-Upload-master/js/jquery.fileupload.js"></script>
    <script type="text/javascript" src="../../js/jQuery-File-Upload-master/js/vendor/jquery.ui.widget.js"></script>
    <script type="text/javascript" src="../../js/jQuery-File-Upload-master/js/jquery.iframe-transport.js"></script>
    <script  type="text/javascript">
        $('#fileupload').fileupload({
            dataType : 'json',
            url : "ownmessages",
            add: function (e, data) {
                $('#post') .click(function () {
                    $('#post').text('Uploading...');
                    data.submit();
                });
            },
            done: function (e, data) {
                $('#post').text('Upload finished.');
            }
        });
    </script>
</head>
<body>
    <s:form action="ownmessages" enctype="multipart/form-data" method="post">
        <s:textarea rows="2" cols="40" name="message" id="message1"></s:textarea><br>
        <s:select name="msg_visibility" id="msg_visibility" list="#{'public':'Public', 'friends':'Friends','me':'Me only'}" value="public"/>
        <input id="fileupload" type="file" name="user_post_image[]"  data-url="ownmessages"/>
        <input type="button" value="Post" id="post" />
    </s:form>
</body>
4

2 に答える 2

5

要素を選択する前に、ドキュメントの読み込みが完了するまで待つ必要があります。jQuery.ready()メソッドは、ドキュメント オブジェクト モデル (DOM) の読み込みが完了するのを待ってから、スクリプトを実行します。

$(document).ready(function() {
  $('#fileupload').fileupload({
        dataType : 'json',
        url : "ownmessages",
        add: function (e, data) {
            $('#post') .click(function () {
                $('#post').text('Uploading...');
                data.submit();
            });
        },
        done: function (e, data) {
            $('#post').text('Upload finished.');
        }
    });
});

を使用する代わりに.ready()、関数を jQuery に渡すこともできます。

$(function() {
    // will run after DOM is loaded
});
于 2013-02-09T12:24:48.907 に答える
0

最初の問題:


<script  type="text/javascript">
   $(document).ready(function() {
    $('#fileupload').fileupload({
        dataType : 'json',
        url : "ownmessages",
        add: function (e, data) {
            $('#post') .click(function () {
                $('#post').text('Uploading...');
                data.submit();
            });
        },
        done: function (e, data) {
            $('#post').text('Upload finished.');
        }
    });
   });
</script>

それは始まりですが、十分ではないかもしれません...

次に、少なくとも最適化のために、スクリプトタグを一番下に移動します

于 2013-02-09T12:21:58.000 に答える