Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.09.2017, 00:44
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Да, из init проходит, а вот если из log вызвать log1 то получаю ошибку через this = Uncaught TypeError: this.log1 is not a function

Plugin.prototype = {
    init: function (e) {
      $(this.element).click($.proxy(this.click, this));
      this.log('test');
    },
    click : function(e){
      e.target.value = this.options.color;
    },
    log: function(msg) {
      console.log(msg);
      this.log1('test');
    }
    log1: function(msg) {
      console.log(msg);
    }
};


Сообщение от Rasy Посмотреть сообщение
Да, объект события подходит для манипуляций.

Просто обратиться к методу объекта
Plugin.prototype = {
    init: function (e) {
      $(this.element).click($.proxy(this.click, this));
      this.log('test');
    },
    click : function(e){
      e.target.value = this.options.color;
    },
    log: function(msg) {
      console.log(msg);
    }
};
Ответить с цитированием
  #12 (permalink)  
Старый 28.09.2017, 00:50
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

elink12,
строка 12, запятая где?
Ответить с цитированием
  #13 (permalink)  
Старый 28.09.2017, 01:50
Интересующийся
Отправить личное сообщение для elink12 Посмотреть профиль Найти все сообщения от elink12
 
Регистрация: 08.04.2017
Сообщений: 17

Ночь, улица, фонарь, запятую забыл но это сути не поменяло. На jsfiddle создал , так же в консоли ошибка https://jsfiddle.net/9dykvku6/8/

<div id='alert'>
1.<input type="text">
</div>
<div id='alert1'>
2.<input type="text">
</div>

(function($) {


    var pluginName = 'Plugin',
        defaults = {
            color: "green",
        },
        options = {};


    function Plugin( element, options ) {
        this.element    = element;
        this.options    = $.extend( {}, defaults, options) ;
        this.defaults   = defaults;
        this.name       = pluginName;
        this.input_name = $(element).attr('name');
        this.init();
    }

    Plugin.prototype = {
        init: function (e) {
           $(this.element).on({"keyup" : this.log},"input",this.options);
        },
        log: function(msg) {
           console.log(msg);
           this.log1('test');
        },
        log1: function(msg) {
           console.log(msg);
        }
    };

    $.fn.Plugin = function ( options,event ) {
      return  this.each(function () {
           new Plugin( this, options );

        });



    }
})(jQuery);
$( document ).ready(function() {
   $('#alert').Plugin({color:'ааа'});
   $('#alert1').Plugin({color:'red'});
});
Ответить с цитированием
  #14 (permalink)  
Старый 28.09.2017, 03:22
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

elink12,
$(this.element).keyup($.proxy(this.log, this))

или
$(this.element).on({"keyup" : this.log.bind(this)},"input",this.options);


только у вас msg === event в log
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите скриптик SlashMan Общие вопросы Javascript 3 10.09.2013 21:06
Не правильно работает прокрутка, подскажите как сделать правильно? denfer12 Общие вопросы Javascript 0 09.05.2012 00:34
Вопрос по созданию меню LeeleeKeelee jQuery 0 21.01.2011 20:46
Подскажите плизз с выбором селектора для select option frolvict jQuery 2 13.11.2010 15:29
Скрипт для плагина к Download Master ponand Общие вопросы Javascript 21 05.01.2009 22:12