Для достижения этой привязки к событию submit
самого form
, а не к событию click
кнопки отправки. Также обратите внимание, что вы не должны использовать on*
атрибуты события. Поскольку HTML-содержимое формы динамически добавляется в DOM, вы можете вместо этого использовать делегированный обработчик событий как для form
, так и для span
. Попробуйте это:
$(document).ready(function() {
$('.click_notes').on('click', function() {
var tid = $(this).data('question-id');
$(this).closest('ul').find('.demo').html('<div class="comment_form"><span><b>X</b></span><form id="contactForm1" action="submit.php" method="post"><textarea required cols="50" class="span10" name="notes" rows="6"></textarea><br><input class="btn btn-primary" id="submitnotes" name="submit_notes" type="submit" value="Add Notes"><input type="hidden" name="submitValue" value="' + tid + '" /></form><br></div>');
});
$(document).on('submit', '#contactForm1', function(e) {
e.preventDefault();
$.ajax({
type: this.method,
url: this.action,
data: $(this).serialize(),
success: function(data) {
console.log('Submission was successful.');
console.log(data);
},
error: function(xhr) {
console.log('An error occurred.');
console.log(xhr);
},
});
}).on('click', 'span', function() {
$(this).parent().hide()
});
});
Также обратите внимание, что вы включаете две версии jQuery, одна из которых (1.6.1) устарела почти на 8 лет. Я бы предложил вместо этого использовать одну ссылку на jQuery 3.3.1.
Нет. Если необходимо сохранить порядок, у Вас должен быть список объектов также. Вы могли инкапсулировать все операции, в которых Вы нуждаетесь в своем собственном классе набора, который обновил бы и словарь и список одновременно.
Неудачно, что.NET не имеет словаря, который поддерживает это само - это - довольно общий запрос - Java делает как LinkedHashMap.
tpower
, Dictionary
и SortedDictionary
очень похожи в этом, они оба содержат набор объектов, доступных ключом. То, где они отличаются, находится в способе, которым они внутренне создаются.
Dictionary
быстрее для вставки насколько я знаю, тогда как SortedDictionary
создается сверх алгоритма поиска двоичного дерева и быстрее для чтения назад.
В обеих ситуациях, хотя, внутренний порядок поддержан ключевым порядком. Нет ничего, чтобы гарантировать, что порядок, которого Вы выполняете итерации через весь набор, совпадет с Вами, вставил Ваши объекты.
В этом случае Вы, возможно, должны сохранить и список и словарь для Ваших различных требований.
Нет. Вы - более обеспеченное использование SortedDictionary, если Вы хотите сохранить свои ключи в порядке.
Править: Или это, или добавляют Ваши ключи к связанному списку, если Вы хотите отслеживать порядок, Вы добавили объекты.
Документация ясно указывает, что "В целях перечисления, каждый объект в словаре рассматривают как KeyValuePair <(<(TKey, TValue>)>) структура, представляющая значение и его ключ. Порядок, в котором возвращаются объекты, не определен". но я не убежден.
Во всех тестах я выполнил, объекты всегда заказываются вставкой.
Я нашел это странным, потому что я также протестировал HashMap и LinkedHashMap (в Java), и порядок в HashMap не является правильным как ожидалось, но, как Jon Skeet сказал, порядок в LinkedHashMap.
Кто-либо может указать на тест сбоя со Словарем?
Вот код, который я использую к тесту:
IDictionary<string, int> dic = new Dictionary<string, int>(10);
Console.WriteLine("Adding ...");
for (int i = 0; i < 1000000; i++)
{
Guid guid = Guid.NewGuid();
dic.Add(guid.ToString(), i);
}
Console.WriteLine("Testing ...");
bool first = true;
int lastItem = 0;
foreach (var item in dic.Values)
{
if (first)
{
first = false;
}
else
{
if (lastItem != item - 1)
{
Console.WriteLine("Test Failed !");
break;
}
}
lastItem = item;
}
Console.WriteLine("Done.");