2

我有这些小部件,里面有一个滑动框。页面加载时有两个小部件,但您可以添加一个小部件并再次将其删除。

滑动框内部是一个颜色选择器,在启动器小部件上颜色选择器可以正常工作,但在添加的小部件中颜色选择器不起作用。

看到这个小提琴:http: //jsfiddle.net/fULQZ/

我认为错误出现在颜色选择器的脚本中?

这是颜色选择器的脚本:

// Color picker
function updateBackground(color) {
    $(this).parents(".box_header").css("background", color.toHexString());
}


$(function() {


$(".flatPalette").spectrum({
    flat: true,
    showInput: true,
    showPaletteOnly: true,
    showPalette:true,
    maxPaletteSize: 10,
    palette: [
         ['#DDD','#9fd0d3', '#c9a9d1', '#e2a6a5', '#c2d2bd','#9fb2d1', '#dbba97', '#cbefe9', '#e6e8bf'],
        []
    ],
    change: updateBackground
});


});
4

2 回答 2

1

在专用函数中提取您的频谱初始化,将其更改为选择器以获取所有非初始化,然后在 gridster.add_widget 之后调用此函数

function addSpectrum(){
    $(".flatPalette:empty").spectrum({ ... }); // :empty will get non init box
};

$('.addbox').on("click", function(){
    gridster.add_widget(' ... ', 2, 1);
    addSpectrum(); // add spectrum on the new box
});

addSpectrum(); // init spectrum on non dynamic box

http://jsfiddle.net/fULQZ/1/

于 2013-03-05T13:18:56.830 回答
0

您需要一个“实时”选择器来匹配运行时添加的元素,请查看http://api.jquery.com/live/

于 2013-03-05T11:45:28.050 回答