Я довольно новичок в JQ, поэтому любая помощь по этому поводу оценена, несколько оставшихся черепных фолликулов получают травмы ...
У меня есть простой плагин jQuery, который использует Ajax для заполнения #selector (UL)Результаты (в виде серии) с использованием AppendTo.Это междоменный вызов, поэтому, насколько я могу судить, поддерживается только asych: true.
Плагин работает, но мне нужно разрешить пользователю поражать добавленные элементы DOM произвольными функциями (т.е.функции, определенные пользователем плагина, такие как $ (". foo"). draggable () или что-то еще), и выполнение этого вне плагина не работает, потому что мы междоменные и асинхронные.
Я думаю, что янужно передать произвольную функцию плагину во время выполнения, но это далеко, как я могу получить.Я возился с делегатом () / trigger () и bind (namespcae.bar), но пока не добился успеха ...
Как это должно быть обработано?
Вызов выглядит такэто:
$(document).ready(
function () {
$('#targetDiv').myPlugin({ count: 10});
//$(".foo").draggable(); // does not work, because we are async.
});
Плагин выглядит так:
(function ($) {
$.fn.myPlugin = function (options) {
$.ajaxSetup({ cache: true, async: false }); // false doesn't work - cross domain
var defaults = {count: 5};
var options = $.extend(defaults, options);
return this.each(function () {
var obj = $(this);
$.ajax({
type: 'GET',
async: false,
dataType: 'json',
data: {},
url: 'http://someurl.com?callback=?&otherstuff=somedata',
success: function (data) {
$.each(data.results, function (i, item){
t = $(<LI class='foo'> + item.text </LI>').appendTo(obj);
// this works but may need any arbitrary jQuery.ui function
//t = $(item.text).appendTo(obj).draggable();
// maybe this but not sure how it should be done
//$(t).trigger(ArbitraryEventHandler); ???