2014-10-30 64 views
0

我安裝了jQuery FancySelect插件。工作正常。現在我試圖在模態彈出框中調用它,但它不起作用。這是在父窗口的代碼:jQuery Modal和FancySelect插件

<script src="/js/fancySelect.js" type="text/javascript"></script> 
<script> 
$(document).ready(function() { 
    $('.fancyselect').fancySelect(); 
    var repoName = 'fancyselect' 
    var menu  = $('#top').find('menu'); 
    function positionMenuArrow() { 
     var current = menu.find('.current'); 
     menu.find('.arrow').css('left', current.offset().left + (current.outerWidth()/2)); 
    } 
    $(window).on('resize', positionMenuArrow); 
    menu.on('click', 'a', function(e) { 
     var el   = $(this), 
     href   = el.attr('href'), 
     currentSection = $('#main').find('.current'); 
     e.preventDefault(); 
     menu.find('.current').removeClass('current'); 
     el.addClass('current'); 
     positionMenuArrow(); 
     if (currentSection.length) { 
      currentSection.fadeOut(300).promise().done(function() { 
       $(href).addClass('current').fadeIn(300); 
      }); 
     } 
     else { 
      $(href).addClass('current').fadeIn(300); 
     } 
    }); 
    menu.find('a:first').trigger('click') 
}); 
</script> 

父作品添加class="fancyselect"任何選擇。但是,如果添加到modal popup select不起作用。

回答

1

只是猜測這裏你沒有表現出HTML或正在處理彈出創建JS邏輯。在那裏你婉應用FancySelect方法的元素,從彈出的插件已經在頁面上,當你撥打:

$('.fancyselect').fancySelect(); 

如果在頁面加載後添加元素,它們將不會被該語句拾取。當顯示彈出窗口時,你會做類似

$('#popupcontainer .fancyselect').fancySelect(); 

因此,他們將所有必需的代碼應用於該元素以及。

更新:

繼更新給你原來的職位,你可以添加類似:[沒有測試]彈出已被填充後

onLoad: function() { 
    var wrap = this.getOverlay().find(".contentWrap"); 
    $(wrap).find('.fancyselect').fancySelect();   
}  

這應該被觸發。

+0

模態是使用以下內嵌JS的疊加:

<腳本類型= 「文本/ rocketscript」> $(函數(){ \t $( 「一個[相對]」)覆蓋。 ({ \t \t掩模:\t \t '#EAEAEA', \t \t效果:\t \t '蘋果', \t \t API:\t \t真, \t \t onBeforeLoad:函數(){ \t \t \t變種渦卷\t = this.getOverlay()發現( 「contentWrap」); (this.getTrigger()。attr(「href」)); \t \t} \t}); }); 這是在FancySelect代碼(它在標頭中)之後的頁腳。 – 2014-10-31 01:08:43

+0

剛剛添加您的彈出代碼到您的原始帖子。 – dawez 2014-10-31 09:59:54

+0

工作,謝謝! – 2014-10-31 20:22:29