2016-05-25 125 views
1

我正在使用Web Form For Marketing(WFFM),並且我在wffm.js中的$ scw.widget對象內創建了幾個自定義函數。問題是當在對象外面調用其中一個函數時,我得到「函數未定義」。WFFM - 訪問對象內部函數

例子:

$scw.widget("wffm.track", { 
    options: { 
     formId: null, 
     fieldId: null, 
     fieldTitle: null, 
     fieldValue: null, 
     eventCount: null, 
     rules: null 
    }, 
    //Custom function 
    checkRequiredFields: function (e, element) { 
     var form = $scw(element).closest("form"); 
     if ($scw(form).find(".form-group.required-field.valid").length === $scw(form).find(".form-group.required-field").length) { 
      if ($scw(form).parents("#c-fab__brochure").length) { 
       if ($scw(form).parents("#c-fab__brochure").find(".brochure-cover").attr("data-selected") === "true") { 
        this.validForm(e, form); 
       } 

      } else { 
        this.validForm(e, form); 
      } 
     } 
    }, 
}); 

而且我已經試過這樣:

$scw(".parent") 
    .off("click.scw") 
    .on("click.scw", ".child", function (e) { 
      $scw.widget.checkRequiredFields(e, $scw(".child").parents(".main-parent").find("form")); 
}); 

然後我得到:

$scw.widget.checkRequiredFields is not a function 

什麼是訪問功能的正確方法? 謝謝。

回答

0

$ scw只是jQuery的特定版本,用於避免在您的網站上與幾個jQuery版本發生衝突。 (因爲WFFM需要特定的一個,並且您的站點可能需要另一個)。

明知$ SCW只是jQuery的,我可以建議你使用jQuery的方法:

$scw(".child").track("checkRequiredFields", e, ".child"); 

如果沒有幫助,試圖尋找如何調用方法jQuery的小部件。

+0

感謝您的回答,安東。我終於用不同的方式解決了它,從_create方法調用方法。當然,我必須看看如何調用這些方法。 –