2012-07-27 71 views
0

我是很新的jQuery的... 我與ToastMessge插件工作(demo and download here)..格內容的功能ARG

我想通過引用傳遞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); 
... 

,但我必須在頁面已sonething讓我的PHP $ _GET MSGTYPE ....所以我可以從「警告」爲「成功」切換 ,等... 我已經嘗試過用:

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

和其他..但沒有什麼...在此先感謝... :)

+0

你只是想改變一個項目的實際文本? – Chad 2012-07-27 14:18:59

+0

沒有..我試圖得到一個div的內容.. – lollo 2012-07-27 14:20:21

+0

當你做$('#msgtype')。text()'時會發生什麼?或者'console.log($('#msgtype')。text())?' – Chad 2012-07-27 14:22:17

回答

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 --> 

如果您試圖做類似於您在評論中發佈的link的內容,那麼您需要確保這些功能存在,但我不確定爲什麼您想這樣做。

例如

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); 
}); 
+0

哦..你的第一個解決方案似乎是好的..它的工作原理,但是我需要在插件中實現'粘滯'的方式..我非常感興趣知道你是否可以在jQuery中使用函數指針..非常感謝你 – lollo 2012-07-27 15:31:52

+0

你絕對可以在javascript中使用函數指針,我提供的第二種方式並不是真正的方式,因爲你只是通過函數的名稱作爲一個字符串,並依賴於該函數存在的事實),我只是將它從鏈接的SO問題中解脫出來。 – Jack 2012-07-27 15:34:50

+0

一個字符串,顯然不能作爲參數傳遞......我猜:)只是要知道....我甚至試圖通過我的var'阿爾法'通過引用...與壞的結果 – lollo 2012-07-27 15:47:51