Note that there are some explanatory texts on larger screens.

plurals
  1. POjQuery function call issue
    primarykey
    data
    text
    <p>I have a plugin that I can set settings and call it when document ready. However, I want to change it to an "onclick" of a button instead of DOM ready.</p> <p>the plugin goes like</p> <pre><code>(function($) { $.fn.addressSearch = function(settings) { settings = jQuery.extend({ searchClass: "quickSearch", checkElement: "href", dataElement: "data", countryListClass: "countryList", countryCode: "11455", errorMsg: "You can only search for address in the UK.", houseNumberClass: "TextboxHouseNumber", postcodeClass: "postcode", addressLine1Class: "addSearchLine1", addressLine2Class: "addSearchLine2", addressLine3Class: "addSearchLine3", addressTownCityClass: "addTownCity", ajaxUrl: "/WebService/addressLook", submitType: "POST", dataType: "xml", parameters: "", addressProcessURL: "", callbackFunctionSingleAddress: selectAddress, callbackFunctionMultipleAddress: quickBoxSearch, useExternalProcessPage: false, validateCountry: true }, settings); var jQueryMatchedObj = this; function _initialize() { _startModal(this, jQueryMatchedObj); return false; } function _startModal(objClicked, jQueryMatchedObj) { $j(objClicked).addClass(settings.searchClass); var countryList = "." + settings.countryListClass + ""; if (settings.validateCountry) { if ($j(countryList) &amp;&amp; $j(countryList).val() != settings.countryCode) { alert(settings.errorMsg); return false; } } if (settings.parameters) { $j.ajax({ url: settings.ajaxUrl, type: settings.submitType, dataType: settings.dataType, data: settings.parameters, success: function(res) { var addresses = eval(res.getElementsByTagName('string')[0].firstChild.data); if (addresses.length == 0) alert('Your address could not be found, please enter it manually'); else if (addresses.length == 1) { settings.callbackFunctionSingleAddress( addresses[0].addressLine1, addresses[0].addressLine2, addresses[0].addressLine3, addresses[0].town, settings.TextboxHouseNumber, settings.postcodeClass, settings.addressTownCityClass, settings.addressLine1Class, settings.addressLine2Class, settings.addressLine3Class ); } else if (addresses.length &gt; 1) { settings.callbackFunctionMultipleAddress( settings.callbackFunctionSingleAddress, addresses, settings.useExternalProcessPage, settings.TextboxHouseNumber, settings.postcodeClass, settings.addressTownCityClass, settings.addressLine1Class, settings.addressLine2Class, settings.addressLine3Class ); } } }); } return false; } //return this._initialize(); return this.unbind('click').click(_initialize); } })(jQuery); </code></pre> <p>this works wihtout any problem when call on DOM ready I call it as below;</p> <pre><code>$("#mydiv").addressSearch({ searchClass:"foo", }); </code></pre> <p>I want to call this on the onclick of the same div. how do i do it? when I try below it says "addressSearch undefined"</p> <pre><code>$("#mydiv").click(function(){ addressSearch({ searchClass:"foo", }); }); </code></pre> <p>Where have I gone wrong?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload