У меня есть плагин (называемый pluggable), который берет любой .plugin
и добавляет к нему эту разметку
<span class="colorable">color me</span>
Это моя оригинальная разметка с помощью class = "plugin".
<div class="plugin"></div>
<div class="plugin"></div>
<div class="plugin"></div>
В js я звоню $('.plugin').pluggable();
, который добавляет <span>
html выше и делает его похожим на
<div class="plugin"><span class="colorable">color me</span></div>
<div class="plugin"><span class="colorable">color me</span></div>
<div class="plugin"><span class="colorable">color me</span></div>
Это все, что делает плагин (добавляет этот HTML), и сам плагин прост, как это
(function($){
$.fn.pluggable = function() {
return this.each(function() {
$(this).html('<span class="colorable">color me</span>');
});
};
})( jQuery );
Но то, что я действительно пытаюсь сделать, это то, что после этого, когда клик по диапазону с классом .colorable, я хочу, чтобы он изменил цвет фона на красный. Я могу сделать это с помощью jquery, как это
$('.colorable').click(function(){
$this.css("background-color", "orange");
});
но есть ли способ поместить этот код в один и тот же плагин, чтобы вся операция была автономной? Мне интересно, потому что исходный элемент, над которым работает плагин, это класс .plugin
, но элемент, который в конечном итоге окрашивается, это новая разметка span, которая добавляется .colorable
. Но я хотел бы сохранить весь этот код для этой операции в одном плагине / файле. Является ли это возможным?