2013-03-15 2 views
0

슬라이드 관리자에 슬라이드를 추가하기 위해 클릭 기능에 miniColors (http://bit.ly/Mq88mU)라는 jQuery 플러그인을 바인딩하려고합니다. 나는 그것을 올바르게 묶는 방법을 알아낼 수 없습니다. 어떤 아이디어?함수를 클릭하여 색상 선택기를 바인드 할 수 있습니다.

내 추가 슬라이드 기능

el.on('click', '.addSlide', function (e) { 
    e.preventDefault(); 
    var templ = $('#slideTemplate').html(); 
    var id = parseInt($('ul.ui-sortable li').last().find('.order').val()) || 0; 
    var slide = templ.replace(/%id%/g, id).replace(/%id1%/g, id + 1); 
    $(templ).find('.minicolors').minicolors(); 
    $(slide).hide().insertAfter($('ul.ui-sortable li').last()).fadeIn(300); 
}); 

답변

0

확실하지 않음 나는 의도했다.

$(slide).hide().insertAfter($('ul.ui-sortable li').last()).fadeIn(function(){ 
    $(this).find('.minicolors').minicolors(); 
}); 
0

당신은 클릭에 나타나도록 바인딩하려고이있다? 나는

$('.minicolors').minicolors(); 

당신은 그것을 위해 jQuery를 선택기를 사용하여 클래스의 minicolors '의 div의를 선택할 수 있습니다 ... 그냥 같은 것을 할 필요가 상상하는 것입니다.

find()를 사용하고 있는지 잘 모르겠지만 slideTemplate div에있는 HTML을 앞에 놓고 사용하고 싶지는 않습니다.

+0

이전에 이미 시도한 기존 슬라이드에 하나 추가했습니다. 따라서 새로운 슬라이드가 추가 될 때마다 모든 슬라이드에 플러그인이 추가됩니다. – souporserious

1

플러그인이 DOM에 존재하지 않는 동안 플러그인을 초기화하려고하는 것처럼 보입니다.

var templ = $('#slideTemplate').html(); 
var id = parseInt($('ul.ui-sortable li').last().find('.order').val()) || 0; 
var slide = templ.replace(/%id%/g, id).replace(/%id1%/g, id + 1); 

$('PARENT').append($(templ)); 
$(templ).find('.minicolors').minicolors(); 

아니면 DOM에서 직접 작업 할 경우이 그것을 달성하는 올바른 방법이지만, fadeIn 기능을 사용하여 내가 무엇을 달성 할 수 있었다 경우

var templ = $('#slideTemplate'); 
var id = parseInt($('ul.ui-sortable li').last().find('.order').val()) || 0; 
var slide = templ.html().replace(/%id%/g, id).replace(/%id1%/g, id + 1); 
templ.find('.minicolors').minicolors(); 
+0

죄송합니다. – souporserious

관련 문제