jquery - Bootstrap 3 fancyfile 在选项卡 Pane 中使用时中断

标签 jquery html css twitter-bootstrap

我正在使用 Twitter Bootstrap 3.2 的 Fancyfile jQuery 插件 ( http://plugins.upbootstrap.com/bootstrap-fancyfile/ ) 将我的文件输入设置为更像 Bootstrap 的主题。

当在 tab-pane 中的输入上使用它时,在加载时不是可见的 tab-pane,输入中断;它变窄,占位符文本消失,单击输入的右侧部分可以触发表单提交。冲突是什么,有没有办法解决这个问题?

jsFiddle:http://jsfiddle.net/dbailey/bv2swf2t/1/

<div class="container">
    <ul class="nav nav-tabs">
                <li class="active"><a href="#main" data-toggle="tab">Description</a></li>
                <li><a href="#photos" data-toggle="tab">Photos</a></li>                                 
                <li><a href="#contributors" data-toggle="tab">Contributors</a></li>

            </ul>
    <div class="tab-content">
        <div class="tab-pane in active fade" id = "main">
            <input type="file" class="fancyfile"></input>
        </div>
        <div class="tab-pane fade" id = "photos">
            <input type="file" class="fancyfile"></input>
        </div>
        <div class="tab-pane fade" id = "contributors">
            <input type="file" class="fancyfile"></input>
        </div>
    </div>
</div>

<script>
$('input.fancyfile').fancyfile({
    text: 'Select File',
    icon: '',
    style: 'btn-primary',
    placeholder: 'Select File…'
});
</script>

最佳答案

我找不到冲突的确切来源。不知何故,宽度在后两个选项卡上设置为 11px。占位符文本仍然存在,只是由于框的大小而看不到它。

这里有一个简单的修复方法:只需使用 css 手动设置输入框的宽度。您必须放置 !important 标志,这样脚本才不会覆盖它。

.fake-input {
    width: 188px !important; /* same as first one
}

fiddle :http://jsfiddle.net/bv2swf2t/2/

编辑:阅读您的评论并再次查看后,该按钮不起作用的原因是实际按钮没有任何作用。 “fancyfile”输入应该占据输入和按钮的宽度,这会打开“选择文件”对话框。出于某种原因,宽度在选项卡 2 和 3 中设置为 0px。修复与上面类似:

.fancyfile {
    width: 280px !important; /* same as first one
}

这会在按钮上扩展输入框,并匹配第一个框的功能。

希望这对您有所帮助!

关于jquery - Bootstrap 3 fancyfile 在选项卡 Pane 中使用时中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25626183/

相关文章:

javascript - 即使在 JavaScript 中设置焦点后,Tab 事件也会更改焦点

Jquery 附加 Html 而不是布局

javascript - (jQuery) 多重拆分自动 href 不起作用

javascript - 使用 KnockoutJS 和单个 AJAX 调用实现无限滚动

javascript - 动态使用第一帧作为 HTML5 视频中的海报?

HTML - 将容器背景和高度设置为最低 100%

javascript - HTML 中文本的对齐

css - 如何使用 css 将 div block 放入右侧屏幕区域?

javascript - 查询; $().css 无法更新对象的样式

javascript - 无法使用addChild方法