簡體   English   中英

在特定上下文中訪問對象時出現問題

[英]Problem accessing an object in a particular context

我在從特定上下文訪問特定對象時遇到麻煩。
我有一段Javascript使用jquery ,moment和daterangepicker

我正在使用jquery將一個函數設置為在apply.daterangepicker事件觸發時運行,並且需要從該函數內的另一個對象中調用一個方法。
我的代碼如下所示:

$('input[name="daterangetext"]').on('apply.daterangepicker', function(e,picker) {
        pickerStartString = moment(picker.startDate).format('YYYY-MM-DD HH:mm');
        pickerEndString = moment(picker.endDate).format('YYYY-MM-DD HH:mm');
        start = pickerStartString;
        end = pickerEndString;
        changeRange();
});

調用changeRange就是問題所在。 我有一個定義如下的對象:

var APG_g = new APGraph('test APGraph Object');

changeRange方法定義為:

this.changeRange = function()
{
    function body here
}

如何從上述函數中調用changeRange
我嘗試將其稱為APG_g.changeRange()但這種方法不起作用-當我收到未定義的運行時錯誤時, changeRange內部使用的變量似乎未設置,然后由於相同的原因而隨后對changeRange調用失敗。

誰能解釋我應該怎么做?

希望這個小演示可以為您解決問題。 您似乎沒有使用ES6語法,因此我添加的JavaScript使用了較舊的語法。 這個想法是向您展示如何從特定的上下文中調用方法,如您所問的那樣。

 var button = $('button'); function Test() { this.testMethod = function() { button.html('New button text'); } } var myTest = new Test(); button.on('click', function handleClick() { myTest.testMethod(); }); 
 body { background: #20262E; padding: 20px; font-family: Helvetica; } #banner-message { background: #fff; border-radius: 4px; padding: 20px; font-size: 25px; text-align: center; transition: all 0.2s; margin: 0 auto; width: 300px; } button { background: #0084ff; border: none; border-radius: 5px; padding: 8px 14px; font-size: 15px; color: #fff; cursor: pointer; } 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script> <div id="banner-message"> <button>Click to change text</button> </div> 

http://jsfiddle.net/zt2ohs7j/

謝謝大家的評論。 原來我只是弄亂了代碼。 我現在可以正常工作了。 正如安迪·霍夫曼(Andy Hoffman)所暗示的那樣,正確的解決方案只是將方法稱為APG_g.changeRange();。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM