我安装了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
,则无效。
答案 0 :(得分:1)
在这里推测,因为您没有显示处理弹出窗口创建的 HTML 或 JS 逻辑。当您调用以下内容时,您可以从页面上已有的弹出插件中应用FancySelect方法的元素:
$('.fancyselect').fancySelect();
如果在页面加载后添加元素,则该语句将不会拾取它们。当显示弹出窗口时,你会像
那样做$('#popupcontainer .fancyselect').fancySelect();
因此,他们将所有必需的代码也应用于这些元素。
<强>更新强>
在您的原始帖子中提供更新后,您可以添加以下内容:[未测试]
onLoad: function() {
var wrap = this.getOverlay().find(".contentWrap");
$(wrap).find('.fancyselect').fancySelect();
}
这应该在填充弹出窗口后触发。