2014-10-30 51 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