У меня есть всплывающее окно Fancybox, которое использует AJAX для извлечения содержимого.Fancybox получает неправильный размер контента при использовании jQuery-Chosen?
Приобретенный html - это div, содержащий заголовок, таблицу с полями ввода и некоторые кнопки.
Проблема в том, что я получаю дополнительную обивку или слишком маленький размер; в любом случае у меня нет лишних полос прокрутки. Я могу полностью отключить их, используя CSS overflow
или свойство scrolling
Fancybox, но я не хочу, чтобы они были полностью отключены - добавляется только при необходимости.
Я использую JQuery Chosen Plugin, из-за чего происходит переполнение; как я могу избежать этого?
Содержимое div модифицировано клиентом, так как они могут динамически добавлять/удалять строки, поэтому мне нужно, чтобы полосы прокрутки отображались, если пользователь добавляет слишком много строк, чтобы они поместились на экране. Вот что происходит, до сих пор:
Что случилось с этим? Вот мой CSS для вещи:
#filter-form {
width: 550px;
}
#filter-form h2 {
text-align: center;
}
#filter-form .chzn-results {
max-height: 110px;
}
#filter-form .buttons {
margin-top: 10px;
overflow: hidden;
}
#filter-form .buttons .btn_save_filter {
float: right;
}
#assoc-num, #assoc-string {
display: none;
}
#filter-form #CustomUserFilters_title {
width: 350px;
display: block;
margin: 0 auto 30px;
}
#add-new-row td {
text-align: right;
}
#add-new-row button {
display: inline;
}
#filter-rules, #filter-form .buttons {
width: 500px;
margin: 0 auto;
}
#filter-rules td {
width: 25% !important;
}
Ширина настройки не имеет значения - удаление их или увеличивая их и до сих пор вызывают их - так это не FancyBox в авторазмер особенность, которая думает содержание меньше - это всегда изменяет только нужной суммы, минус некоторые пиксели, которые вызывают переполнение.
Вот HTML (большой беспорядок, я знаю):
<div id="filter-div">
<form action="/customUserFilters/create" id="filter-form">
<h2>Create Filter</h2>
<input placeholder="Filter name" type="text" value="" name="CustomUserFilters[title]" id="CustomUserFilters_title"><table id="filter-rules">
<tbody><tr class="filter-row">
<td class="td-bool-op"></td>
<td class="td-field-id"><select id="" style="width: 150px;" name="CustomUserFilterSettings[][field_id]">
<option value="2">Name</option>
</select></td>
<td class="td-assoc"><select style="width: 100px;" name="CustomUserFilterSettings[][assoc]">
<option value="=">=</option>
</select></td>
<td class="td-value"><input type="text" value="" name="CustomUserFilterSettings[][value]" id="CustomUserFilterSettings_value"></td></tr> <tr id="new-filter">
<td class="td-bool-op"><select id="" style="width: 60px;" name="CustomUserFilterSettings[][bool_op]">
<option value="AND" selected="selected">AND</option>
<option value="OR">OR</option>
</select></td>
<td class="td-field-id"><select id="" style="width: 150px;" name="CustomUserFilterSettings[][field_id]">
<option value="2">Name</option>
</select></td>
<td class="td-assoc"><select style="width: 100px;" name="CustomUserFilterSettings[][assoc]">
<option value="=">=</option>
</select></td>
<td class="td-value"><input type="text" value="" name="CustomUserFilterSettings[][value]" id="CustomUserFilterSettings_value"></td> </tr>
<tr id="add-new-row">
<td colspan="4">
<button id="add-new-row-button" class="btn_grey" name="yt0" type="button">+ Add Another Condition</button> </td>
</tr>
</tbody></table>
<div class="buttons">
<button class="btn_orange btn_save_filter" name="yt1" type="button">Create Filter</button> <button class="btn_grey btn_cancel_filter" name="yt2" type="button">← Cancel</button></div>
</form>
И вот FancyBox INIT:
$('#new_filter_button').fancybox({
beforeLoad: function() {
$('.qtip').hide();
},
type: 'ajax',
href: window.baseUrl + '/customUserFilters/create',
openEffect: 'fade',
closeEffect: 'fade',
wrapCSS: 'filters-box'
});