[英]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>
謝謝大家的評論。 原來我只是弄亂了代碼。 我現在可以正常工作了。 正如安迪·霍夫曼(Andy Hoffman)所暗示的那樣,正確的解決方案只是將方法稱為APG_g.changeRange();。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.