От документация jQuery : Вы определяете асинхронный опция быть ложь для получения синхронного запроса Ajax. Тогда Ваш обратный вызов может установить некоторые данные, прежде чем Ваша родительская функция продолжится.
Вот то, на что Ваш код был бы похож, если изменено, как предложено:
beforecreate: function (node, targetNode, type, to) {
jQuery.ajax({
url: 'http://example.com/catalog/create/' + targetNode.id + '?name=' + encode(to.inp[0].value),
success: function (result) {
if (result.isOk == false) alert(result.message);
},
async: false
});
}
display: block
здесь не поможет , потому что, когда активируется float, элементы автоматически переключаются в блочный режим, независимо от его начального режима, поэтому ваша ширина должна работать.
Проблема может заключаться в пустом теге
, который может не отображаться из-за какого-то непонятного правила, которое я не могу вспомнить. Вам следует попытаться предотвратить пустой диапазон, например, добавив & nbsp;
, если содержимое пустое.
Span - это встроенный элемент, поэтому вы не можете установить ширину. Чтобы установить ширину, вы должны сначала установить ее для блочного элемента с помощью
display:block;
. После этого вы можете установить ширину. Поскольку span является встроенным встроенным элементом, вы также можете использовать встроенный блок, и он будет работать даже в IE:
display:inline-block;
Чтобы эта работа работала, просто добавьте
display: block;
к стилю.
Ширина не учитывается, поскольку span является встроенным элементом. Чтобы исправить это, добавьте:
display: inline-block;
В зависимости от ситуации, display: inline-block
может быть лучше, чем display: block
, потому что любой контент после диапазона не будет принудительно добавлен новая строка.