2015-10-26 2 views
1

Если у меня есть:JQuery цепочки пользовательской функции

function printRangeValue(){ 
    $(this).prev().children("output").text($(this).val()); 
} 
$(document).ready(function(){ 
    //... 
    $("#strStat").printRangeValue(); 
    $("#conStat").printRangeValue(); 
}); 
<label for="strStat">Strength<output id="forStr" for="strStat">12</output></label> 
<input type="range" id="strStat" class="stat" name="strStat" min="3" max="20"> 

Есть простой способ изменить содержание готовой функции, чтобы сделать $(this) работу?

Спасибо!

+1

Вы ищете 'jQuery.fn.printRangeValue = функция() {...}'? Или что-то другое? Это немного сложно сказать, потому что ваш вопрос задает вопрос о «цепочке», но на самом деле вы не делаете никаких цепочек. Ваш код не будет работать так, как написано, но вы не упомянете об общем сбое в работе, поэтому сложно точно сказать, чего вы хотите. – apsillers

+0

Вы хотите [создать свой собственный плагин] (https://learn.jquery.com/plugins/basic-plugin-creation/). – moonwave99

+0

Хорошо, вам нужно 2 или более функций, чтобы назвать это цепочкой? Если так, то я определенно ошибаюсь в цепочке, там никаких неудач, это просто не сработало. – user5489152

ответ

0

jQuery.fn.extend({ 
 
    printRangeValue: function() { 
 
     console.log(this); 
 
     $(this).prev().children("output").text($(this).val()); 
 
    } 
 
}); 
 

 
$(document).ready(function() { 
 
    $("#strStat").printRangeValue(); 
 
    $("#conStat").printRangeValue(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<label for="strStat">Strength 
 
    <output id="forStr" for="strStat">12</output> 
 
</label> 
 
<input type="range" id="strStat" class="stat" name="strStat" min="3" max="20">

Ref: http://api.jquery.com/jquery.fn.extend/

+0

Демонстрация: http://jsfiddle.net/kishoresahas/z60j538d/ –

+0

Теперь он работает, спасибо! – user5489152

Смежные вопросы