Я пытаюсь создать jQuery-версию функции wordwrap в php - я задал более ранний вопрос об этом и был направлен на эту функцию javascript, которая делает именно то, что я ищу, за исключением того, чтоЯ не могу заставить его дружить с jQuery - в основном я думаю по незнанию.
Я решил попробовать адаптировать код, который мне предоставили, в плагин jQuery - для развлечения и потому, что могуне могу найти что-то, чтобы делать то, что я хочу, и потому что я подумал, что это будет хороший опыт обучения, но я не могу заставить его работать -
вот оригинальный javascript:
function wordwrap( str, width, brk, cut ) {
brk = brk || '\n';
width = width || 75;
cut = cut || false;
if (!str) { return str; }
var regex = '.{1,' +width+ '}(\\s|$)' + (cut ? '|.{' +width+ '}|.+$' : '|\\S+?(\\s|$)');
return str.match( RegExp(regex, 'g') ).join( brk );
}
А потом мой jQuery - который, я думаю, вероятно, неверен:
$.fn.wordwrap = function(options) {
var settings = $.extend({
'brk': '<br>',
'width': '5',
'cut': 'false'
}, options);
var regex = '.{1,' +settings.width+ '}(\\s|$)' + (settings.cut ? '|.{' +settings.width+ '}|.+$' : '|\\S+?(\\s|$)');
return this.html(function(i, html) {
return text.html(RegExp(regex, 'g')).join(settings.brk);
});
У меня ограниченный опыт создания плагинов.Я прочитал руководство по jQuery на http://docs.jquery.com/Plugins/Authoring и чувствую, что все делаю правильно, но ничего не происходит при вызове элемента, например:
$('#foo').wordwrap({'width' : '25'});
Я не получаю никаких ошибок в Chrome Web Inspect, но на моей странице тоже ничего не происходит ...
Я считаю, что проблема заключается в возвращаемой строке в конце функции - я предполагаючто я не делаю что-то должным образом, чтобы получить желаемый результат
Любая помощь с благодарностью!
ОБНОВЛЕНИЕ: ПОЛУЧИЛ СПАСИБО!Вот последний сценарий, который я использую:
$.fn.wordwrap = function(options) {
var settings = $.extend({
'brk': '<br>',
'width': '75',
'cut': 'false'
}, options);
var regex = '.{1,' +settings.width+ '}(\\s|$)' + (settings.cut ? '|.{' +settings.width+ '}|.+$' : '|\\S+?(\\s|$)');
return this.html(function(i, html) {
var match = html.match(RegExp(regex, 'g'));
if (match != null) {
return match.join(settings.brk);
}
});