jQuery Modal和FancySelect插件

时间:2014-10-30 01:41:00

标签: javascript jquery modal-dialog

我安装了jQuery 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 个答案:

答案 0 :(得分:1)

在这里推测,因为您没有显示处理弹出窗口创建的 HTML JS 逻辑。当您调用以下内容时,您可以从页面上已有的弹出插件中应用FancySelect方法的元素:

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

如果在页面加载后添加元素,则该语句将不会拾取它们。当显示弹出窗口时,你会像

那样做
$('#popupcontainer .fancyselect').fancySelect();

因此,他们将所有必需的代码也应用于这些元素。

<强>更新

在您的原始帖子中提供更新后,您可以添加以下内容:[未测试]

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

这应该在填充弹出窗口后触发。