 <p>As I mentioned in my comment, <code>$.getJSON</code> is an asynchronous function. The data won't be available immediately after you call it, but after you are done processing the response returned by the server in the <code>success</code> callback.</p> <p>In other words:</p> <pre><code>$('#ss').mlData({ url:'ajax.php', }, function(result,add) { ... /* At his point the data should be available */ /* You can call it onwards */ $('#ss').mlSelect(); }); </code></pre> <p>That's why you can't see the new data.</p>