我安装了 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"
添加到父级作品中的任何选择中。但是,如果添加到模式弹出选择
,则不起作用。
最佳答案
这里只是推测,因为您没有显示处理弹出窗口创建的 HTML 或 JS 逻辑。当您调用以下方法时,您想要从页面上已经存在的弹出插件中应用 FancySelect 方法的元素是:
$('.fancyselect').fancySelect();
?
如果元素是在页面加载后添加的,则该语句不会拾取它们。显示弹出窗口时,您会执行类似的操作
$('#popupcontainer .fancyselect').fancySelect();
因此,他们也将在该元素上应用所有必需的代码。
更新:
根据原始帖子中的更新,您可以添加类似以下内容:[未测试]
onLoad: function() {
var wrap = this.getOverlay().find(".contentWrap");
$(wrap).find('.fancyselect').fancySelect();
}
这应该在弹出窗口填充后触发。
关于javascript - jQuery Modal 和 FancySelect 插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26643658/