2013-12-19 1 views
1

При создании плагина jQuery можно ли принять текстовую строку вместо элемента?Принять текстовую строку вместо элемента в плагине jQuery

Например, вместо $("#someelement").myPlugin();: $('Some text string').myPlugin();

Кроме того, можно разрешить несколько параметров?

Например, $('Text here', 'Another text').myPlugin();

Я исследовал, и $(), кажется, используется только для выбора DOM элементов. Однако его нельзя использовать. Когда я попробовал свою тестовую функцию, используя только $.myPlugin();, это не сработало.

Следовательно, для такого рода вещей я должен просто использовать функцию? Плагины jQuery используются только при таргетинге на элемент DOM (например, пример $("p").greenify();). Или приемлемо использовать их как регулярную функцию с параметрами?

+1

Почему вы хотите обернуть «текстовую строку» внутри объекта jquery? Не используйте плагин, используйте функцию вместо этого, см. Ответ Дэвида –

ответ

3

jQuery «плагины» - это просто прототипы объекта jQuery. Поэтому при вызове конструктора, такого как $('text'), он фактически «делает» что-то с аргументом text (jQuery будет рассматривать это как селектор).

Если вы просто хотите, чтобы создать «плагин» для работы с текстом, вот простой для вас:

myPlugin('Text here', 'Another text'); 

Или вы можете продлить Струнный прототип, если вы представляете:

String.prototype.myPlugin = function(suffix) { 
    return this+suffix 
}; 

'mytext'.myPlugin('.com') // -> mytext.com 
+0

Спасибо за эту информацию, я решил просто использовать регулярную функцию. – william44isme

1

вы можете создать свой плагин, чтобы принять строку в качестве параметра ...

, а затем использовать его по выбору jQuery

$('#myid').myPlugin('some text'); 

или даже просто в качестве регулярной функции

myPlugin('some text'); 
0

Я не понимаю ваш вопрос - что вы хотите сделать именно?

Если вы хотите вызвать только плагин без выбора узла DOM, большинство расширений JQuery зарегистрировать себя $ .fn: $.fn.my_pluginname

некоторые возможности вызвать его на элемент:

$('#my-css-id').myPlugin(); 
$('<div class="justCreatedNow">content</div>').appendTo('body').myPlugin(); 
Смежные вопросы