У меня есть текстовое поле, в которое введены значения, разделенные запятой/разделителями, в которые я должен убедиться, что у вас есть уникальные записи. Решено, что используя Paul Irish's Duck Punching example #2 и привязывая его к onblur для этого текстового поля.Duck Punching/Monkey Patching breaks Tablesorter
Значения, введенные в текстовое поле, разбиваются на стол. Поскольку таблица может быть очень длинной, я нашел Mottie's Tablesorter, чтобы работать блестяще.
Проблема в том, что Duck Punching code разрушает Tablesorter. Стиль для Tablesorter передается просто отлично, но таблица фактически не сортируется. НО, когда я комментирую код Duck Punching, Tablesorter чудесно работает.
Мои навыки кодирования не такие, что я могу понять, почему эти два конфликтуют. Любая помощь будет высоко оценена.
Я не изменил код Tablesorter или добавил к нему какие-либо специальные элементы сортировки ... просто следуя самому базовому примеру прямо сейчас. Вот код Duck Punching, который я только модифицировал, чтобы включить var для текстового поля, мне нужно иметь уникальные записи.
function ValidateTextBox1()
{
(function($){
var arr = document.getElementById("TextBox1").value.split(',');
var _old = $.unique;
$.unique = function(arr){
// do the default behavior only if we got an array of elements
if (!!arr[0].nodeType){
return _old.apply(this,arguments);
} else {
// reduce the array to contain no dupes via grep/inArray
return $.grep(arr,function(v,k){
return $.inArray(v,arr) === k;
});
}
};
})(jQuery);
}
Функция выше находится в отдельном файле js, который вызывается через onblur для TextBox1.
Затем, у меня есть кнопка, которая запускает следующее:
function GenerateTable()
{
var Entry1 = document.getElementById("TextBox1").value
var Entry2 = document.getElementById("TextBox2").value
var content = "<table id=myTable class=tablesorter ><thead><tr><th>Entry 1 Values</th><th>Entry 2 Value</th></tr></thead><tbody>"
var lines = Entry1.split(","),
i;
for (i = 0; i < lines.length; i++)
content += "<tr><td>" + (Entry1.split(",")[i]) + "</td><td>" + Entry2 + "</td></tr>";
content += "</tbody></table>"
$("#here_table").append(content);
$(function(){
$("#myTable").tablesorter({
theme: 'default'
});
});
}
Функция будет генерировать/добавляемую таблицу в конкретной DIV.
Если я останусь в коде проверки для TextBox1, таблица будет генерироваться, но не сортируется (хотя ей все равно удается потянуть тему).
Если я удалю код проверки, таблица будет сгенерирована и будет сортироваться.
Можете ли вы поделиться немного больше кода, который вы используете ... Я не думаю, что вышеуказанный код необходим в вашем случае. Поэтому, пожалуйста, поделитесь тем, как textarea обновляет таблицу в демо - [вот вам, чтобы вы начали] (http://jsfiddle.net/Mottie/abkNM/) – Mottie
@Mottie - Добавлен дополнительный код для моего вопроса. Большое спасибо за то, что посмотрели на меня. –