JQuery: у меня есть функциональный $ .fn.my_function с другими функциями внутри, как я могу назвать их?

Хорошо возвращать несколько значений с помощью кортежа для простых функций такой как divmod. Если это делает код читаемым, это - Pythonic.

, Если возвращаемое значение начинает становиться сбивающим с толку, проверьте, делает ли функция слишком много и разделила его, если это. Если большой кортеж используется как объект, сделайте его объектом. Кроме того, рассмотрите использование именованные кортежи , который будет частью стандартной библиотеки в Python 2.6.

6
задан apelliciari 13 November 2009 в 14:24
поделиться

3 ответа

Вы должны каким-то образом выставить их «внешнему миру». В настоящее время они видны только в my_function , поэтому вы не сможете вызывать их из другого места.

Самый наивный способ исправить это будет примерно так:

7
ответ дан 8 December 2019 в 14:43
поделиться

Похоже, вы пытаетесь создать плагин jQuery. Вы должны ограничить методы вашего плагина частной областью, http://www.learningjquery.com/2007/10/a-plugin-development-pattern

http://docs.jquery.com/Plugins/Authoring

Однако, если вы делаете просто некоторые «служебные» функции, вы можете просто связать их с пространством имен jQuery следующим образом:

$.foo = function(){
         // do stuff
    };
$.bar = function(){
        // do stuff
    };
7
ответ дан 8 December 2019 в 14:43
поделиться

HTML

<p id="hello">aaa</p>
<p id="hola">sss</p>
<div id='result'></div>

JS

$.fn.my_function = function() 
{
    this.foo = function(xref) {
       $("#result").append("<div>"+xref+".foo " + $(this).html() +"</div>");
    };

    this.bar = function(xref) {
       $("#result").append("<div>"+xref+".bar " + $(this).html() +"</div>");
    };

    return this;
};

var ee1 = $("#hello").my_function();
var ee2 = $("#hola").my_function();

ee1.bar("ee1");
ee2.bar("ee2");
$("#hello").html("hello hellboy");
ee1.foo("ee1");
ee2.foo("ee2");
$("#result").append("<hr />");
ee1.bar("ee1");
ee2.bar("ee2");
$("#hola").html("hola hellboy");
ee1.foo("ee1");
ee2.foo("ee2");
2
ответ дан 8 December 2019 в 14:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: