-2

jqueryの関数からパラメータを渡したいのですが、うまくいきません。私は何を間違っていますか?コードの繰り返しを防ぐために、クリック関数からダイアログブロック関数に「名前」を渡したい

更新:関数の後に名前を定義しました。ただし、このように渡すことはまだできません <%=GetUserName(name)%>

更新 2 jsFiddle リンク http://jsfiddle.net/bbKw8/

            <div id="dialog-block" >
                <p>
                    <b>Friends List:</b>
                    <% =GetFriends(0) %>
                </p>
            </div>
            <div id="Div1">
                <p>
                    <b>Friends List:</b>
                    <% =GetFriends(0) %>
                </p>
            </div>
            <script type="text/javascript">

                // the jQuery document ready handler
                $(function () {
                    var name;
                    // create our dialog
                    $('#dialog-block').dialog({
                        title: '<%=GetUserName(name)%>',
                        autoOpen: false,
                        width: 400,
                        buttons: {
                            "Close": function () {
                                closeDialog($(this))
                            }
                        }
                    });

                    // the button to open the dialog
                    $('#user0chair,#apDiv1').click(function (event) {
                        if (this.id == 'user0chair') {
                            $('#dialog-block').dialog('open');
                            name = 1;
                        }
                        else if (this.id == 'user1chair') {
                            $('#dialog-block').dialog('open');
                        }
                    });

                });

                function closeDialog(elem) {
                    elem.dialog("close");
                }
            </script>
4

2 に答える 2

1

キーワードでの定義nameに失敗したためvar、ページ上の他のコードから既にアクセス可能です。

この特殊なケースを除いて、変数には関数スコープがあるため、変数var name...へのアクセスを必要とする両方の関数よりも高いレベルで を定義します。

「var」を使用する理由

于 2013-01-27T22:40:29.477 に答える
0

直後に

 $(function () {

置く var name ;

説明 :

グローバルスコープで変数を作成し、関数からそれを割り当てて、外部からアクセスできるようにします..

変数をテキストとしてラップしています! その周りに qouts がある場合、これは変数ではなくテキストであることを意味し、行をタイトルに変更する必要があります。

'<%=GetUserName(' + name + ')%>'

この行は、引用符の間のすべてのものをテキストとして扱い、名前を付けるときに値を取得してテキストに追加し、テキストを完成させることを意味します..

編集:ここでちょっと待ってください。ajaxを除いて、サーバー側の関数にjavascript変数を渡すことはできませんが、これは好きではありません.. postまたはgetを使用してサーバーに送信し、そこから取得して起動する必要があります機能して結果をキャッチバックしてください!

于 2013-01-27T22:40:51.037 に答える