2014-09-06 43 views
0

我想使用[jQuery小小酒館/子] [1]。但是,我什至沒有管理使用下面的代碼運行在HTML的功能。例如,我怎麼叫publish1,我應該怎麼辦呢?謝謝。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
<script> 
    /*  
     jQuery pub/sub plugin by Peter Higgins ([email protected]) 
    */ 
    (function($) { 
    var topics = {}; 

    $.publish1 = function(topic, args) { 
    if (topics[topic]) { 
    var currentTopic = topics[topic]; 

    for (var i = 0, j = currentTopic.length; i < j; i++) { 
     currentTopic[i].apply($, args || []); 
    } 
    } 
    }; 

    $.subscribe1 = function(topic, callback) { 
    if (!topics[topic]) { 
    topics[topic] = []; 
    } 

    topics[topic].push(callback); 

    return { 
    "topic": topic, 
    "callback": callback 
    }; 
    }; 
</script> 
+0

你有沒有試過'$ .publish1()'? – 2014-09-06 10:14:13

回答

0

我可能失去了一些東西,但作爲發佈的代碼是incompelte函數,需要關閉匿名函數的大括號和括號,然後可能調用它,換句話說,在腳本塊的末尾添加以下內容:})(jQuery);給定

<script> 
(function($) { 
    var topics = {}; 

    $.publish1 = function(topic, args) { 
    if (topics[topic]) { 
    var currentTopic = topics[topic]; 

    for (var i = 0, j = currentTopic.length; i < j; i++) { 
     currentTopic[i].apply($, args || []); 
    } 
    } 
    }; 

    $.subscribe1 = function(topic, callback) { 
    if (!topics[topic]) { 
    topics[topic] = []; 
    } 

    topics[topic].push(callback); 

    return { 
    "topic": topic, 
    "callback": callback 
    }; 
    }; 
})(jQuery); 
</script> 

我不熟悉你的名字的插件,但在jQuery插件背後的通常想法是創建一個名爲$的匿名函數,然後用jQuery`作爲參數調用它,以防jQuery在noConflict模式下運行。

+0

謝謝,TechnoKnol和Adam。 @Adam,我確實錯過了添加})(jQuery);.我的問題是,我應該如何在html端調用函數。我嘗試了以下措施無濟於事。 ... – distillingJQuery 2014-09-06 19:36:42

+0

我認爲這幾乎是我查詢的答案。 Reigel的http://stackoverflow.com/questions/2672355/calling-jquery-method-from-onclick-attribute-in-html。 – distillingJQuery 2014-09-06 23:31:28

相關問題