#jquery-plugins #jquery-slider
#jquery-плагины #jquery-слайдер
Вопрос:
У меня есть плагин, который извлекает данные JSON из внешнего файла и добавляет их к «div # slider», данные извлекаются и работают нормально, но EasySlider не инициализируется после успешного извлечения данных. и слайд не запускается.
У меня есть коды на http://lkamal.com.np/r3dImage
мой код плагина выглядит следующим образом:
(function($) {
$.fn.r3dImage = function(options){
var defaults = {
url: 'ajax/test.txt',
pause: 2000,
};
var options = $.extend(defaults, options);
//retrive json file
return this.each(function() {
obj = $(this);
var body = obj.html();
getJson();
});
function getJson(){
$.ajax({
type: "POST",
url: options.url,
dataType: "json",
cache: false,
contentType: "application/json",
success: function(data) {
//alert("Success");
$.each(data.dashboard, function(i,post){
obj.html('<li><a href="' post.TargetUrl '" target="' post.Target '"><img src="' post.ImageUrl '" title="' post.OverlayText '" /></a></li>');
});
$(obj).easySlider({
pause: options.pause
});
},
error: function(xhr, status, error) {
alert(xhr.status);
}
});
};
/* this.each(function() {
$(options.container).easySlider({
pause: options.pause
});
});*/
};
})(jQuery);
и еще один — easy slider 1.7.
или
могу ли я сделать это внутри плагина easyslider.
Как я могу объединить эти два плагина и создать один.
Ответ №1:
У меня также есть решение для этого.
$(function() {
$.fn.r3dImage = function(param) {
var options = {
url : "",
pause : 2000,
feedFetchDelay : 10
};
this.each(function() {
var element = $(this);
//alert(element.attr('id'));
element.html("<ul></ul>");
options = $.extend(options,param);
if(options.url=="") { console.log("URL is not specified"); }
else {
getJsonFeed(element); //retrives json feed and appends to respective div
setInterval(getJsonFeed, options.feedFetchDelay*1000*60); //Time interval in milli seconds converted to minute using delay*1000*60
}
});
function getJsonFeed(element){
//function to retrive json feed start using post of json data
$.post(
options.url,
function(data) {
//alert(data.dashboard);
html = '';
$.each(data.dashboard, function(k,v) {
html = '<li>';
html = '<a href="' v.TargetUrl '" target="' v.Target '">';
html = '<img src="' v.ImageUrl '" alt="' v.Alt '" title="' v.OverlayText '" />';
html = '</a><p>' v.OverlayText '</p></li>';
});
//alert(html);
$("ul", element).append(html); //appending the json data with respective div
//initialize the slider to easy slider
$(element).easySlider({
auto: true,
continuous: true
});
},
"json"
);
}
}
});