0

私はJqueryに比較的慣れていないので、答えがかなり明白になる可能性があることを受け入れます。関数を提供するプラグインがありますが、プログラムを実行すると、コンソールエラーが発生します。

Cannot call method 'createEvent' of undefined 

私が言ったように、私はおそらく単純な何かを逃したかもしれませんが、私は何を見つけることができません。もちろん、変数desiredValueは正しいデータを取得しており、プラグインがヘッダーに正しくリンクされていることを確認しました。誰かが何かアドバイスをもらったら、それをいただければ幸いです。ありがとう。

function createEvent(title,location,notes, startDate, endDate){
  var title= "My Appt";
  var location = "Los Felix";
  var notes = "me testing";
  var startDate = "2012-11-23 09:30:00";
  var endDate = "2012-11-23 12:30:00";

  cal.createEvent(title,location,notes,startDate,endDate);
}

var cal;

$(document).ready(function() {
  cal = window.plugins.calendarPlugin;


  $('.calinfo').live('click', function() {    
    var desiredValue = $(this).parent().prev().find('.calendar').val();                                                
    var calInfo = desiredValue.split(',');

    createEvent(calInfo[0], calInfo[1], calInfo[2], calInfo[3], calInfo[4]);
  });                              
});    
4

2 に答える 2

1

cal 割り当ての後にデバッグ ポイントを配置します。問題は、関数内の次のコード行です。

cal.createEvent(title,location,notes,startDate,endDate);

cal は、そのコンテキストとスコープでは定義されていません。

という感じです

cal = window.plugins.calendarPlugin;

が正しく割り当てられていません。

... リンクをありがとう (コメントを参照) -- @Ohgodwhy。

正直なところ、そのプラグインはあまりうまく書かれていません。ただし、関数の最初の行を編集するだけです。

window.plugins.calendarPlugin.prototype.createEvent = function(title,location,notes, startDate, endDate){

関数を呼び出すときはいつでも、cal.createEvent を使用するだけです (クリック イベント ハンドラーをそのように編集する必要があります。

これはばかげているように聞こえるかもしれませんが... このスクリプトの前にプラグイン JS ファイルが含まれて実行されたのは確かですか? このスクリプトの実行後にプラグイン (カレンダー プラグインの JavaScript ファイル) を含める場合、calendarPlugin オブジェクトは存在しません (したがって、未定義のままになります)。

于 2012-08-09T02:49:13.087 に答える