Note that there are some explanatory texts on larger screens.

plurals
  1. POjQuery plugin callback function and parameter settings issue
    primarykey
    data
    text
    <p>I have developed below plug-in</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, //Callback 1 callbackFunctionMultipleAddress: quickBoxSearch, //Callback 2 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) { //Callback 1 and parameters set here 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) { //Callback 2 and parameters set here settings.callbackFunctionMultipleAddress( settings.callbackFunctionSingleAddress, addresses, settings.useExternalProcessPage, settings.TextboxHouseNumber, settings.postcodeClass, settings.addressTownCityClass, settings.addressLine1Class, settings.addressLine2Class, settings.addressLine3Class ); } } }); } return false; } return this.unbind('click').click(_initialize); } })(jQuery); </code></pre> <p>Above works fine without any problem. I call this with code below</p> <pre><code>$('#mydiv').click(function() { $(this).addressSearch(/* ... */); }); </code></pre> <p>However now I want to extend this even further with the passing both callback functions and parameters in the settings for the plugging so the plugging will be more robust.</p> <p>how do I do this, basically I want to pass</p> <pre><code> 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 ); </code></pre> <p>AND</p> <pre><code> settings.callbackFunctionMultipleAddress( settings.callbackFunctionSingleAddress, addresses, settings.useExternalProcessPage, settings.TextboxHouseNumber, settings.postcodeClass, settings.addressTownCityClass, settings.addressLine1Class, settings.addressLine2Class, settings.addressLine3Class ); </code></pre> <p>as parameters on the click event of a div. So it would look like,</p> <pre><code>$('#mydiv').click(function() { $(this).addressSearch({ callbackFunctionSingleAddress: callbackFuntion(param1, param2) }); }); </code></pre> <p>Above is the idea. Is this possible? Please help</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.
    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