0

私はjqueryを初めて使用します...ToastMessgeプラグインを使用しています(デモとダウンロードはこちら)。

別の関数の引数を参照してToastmessage関数の名前を渡したいのですが、以下は機能しません。

$(document).ready(function() {
        function switchMsgType(fref) 
            {
             var fname = null;  
             fref(fname);
            }
            var alfa = $("#msgtype").html();

            switchMsgType(alfa);
         });

html:

<body>

    <div id="msgtype"><?php echo $_GET['msgtype']; ?></div>
    <div id="msg">bla bla ....</div>  <!-- txt of the message -->
    ...

私が持っている唯一の動作バージョンはこれです:

...
switchMsgType(showStickySuccessToast);
... 

しかし、PHPの$ _GET msgtypeを維持するには、ページに何かを含める必要があります。これにより、「警告」から「成功」などに切り替えることができます。

$.trim($("#msgtype").text());  or...    $.trim($("#msgtype").html());

と他の人..しかし何も...事前に感謝します...:)

4

1 に答える 1

0

提供したリンクに基づくと、「msgtype」の内容に基づいて別の「トーストメッセージ」を呼び出そうとしているようです。divそのために関数ポインタを使用する必要がある理由がわかりません。 toastMsgのタイプの名前を渡すだけで、それを使用して適切なトーストメッセージを表示できます。

例えば

function callToastMsg(msgType, msg) {
      $().toastmessage('show' + msgType + 'Toast', msg);
}

$(function() {
    var msgType = $('#msgtype').text();
    var msg = $('#msg').text();
    callToastMsg(msgType, msg);
}); 

HTML

<div id="msgtype"><?php echo $_GET['msgtype']; ?></div> //say $_GET['msgtype'] == "Success"
<div id="msg">bla bla ....</div>  <!-- txt of the message -->

コメントに投稿したリンクと同様のことをしようとしている場合は、それらの関数が存在することを確認する必要がありますが、なぜこのようにしたいのかはよくわかりません。

例えば

function success(msg) {
    $().toastmessage('showSuccessToast', msg);
}

function warning(msg) {
    $().toastmessage('showWarningToast', msg);
}
function callOtherFunction(nameOfFunction, msg) {
    window[nameOfFunction](msg);
}

$(function() {
    var nameOfFunction = $('#msgtype').text();
    var msg = $('#msg').text();
    callOtherFunction(nameOfFunction, msg);
}); 
于 2012-07-27T15:10:07.403 に答える