Мобильный плагин jquery / jquery - виджет - вызов частного метода не работает - PullRequest
1 голос
/ 14 сентября 2011

Я пытаюсь вызвать закрытый метод _scrollMe из моего плагина, но постоянно получаю сообщение об ошибке, что это не функция.

Может кто-нибудь сказать мне, что я делаю не так? Спасибо!

    (function( $, window, undefined ){
      $.widget( "mobile.multiview", $.mobile.widget, {        
        _create: function() {
           this._morph();
           },
        _morph: function() {
           $('div[data-role="page"]').live('pagebeforeshow.scroll', function(event){
               var $page = $(this);
               if ( $page.data('scrollable', 'Off') ) {
                   $page._scrollMe(); // this doesn't fire 
                   }
             });
           },
       _scrollMe: function () {
           alert ("scrollMe");
           }
    }); 

// initialize
$( document ).bind( "pagecreate", function( ) {
       $(document).multiview();
       });  

})(jQuery,window);

Ответы [ 2 ]

0 голосов
/ 14 сентября 2011

Я не думаю, что «это» - это то, что вы ожидаете от обратного вызова этого события.

Попробуйте переместить переменную $ page за пределы функции.

var $page = $(this);
$('div[data-role="page"]').live('pagebeforeshow.scroll', function(event){

и, возможно, вместо этого:

var $page = this;

// Редактировать //

_morph: function() {
    var page = this;
    $('div[data-role="page"]').live('pagebeforeshow.scroll', function(event) {
        if($page.data('scrollable', 'Off') ) {
            $page._scrollMe(); // this doesn't fire 
        }
     });
},
0 голосов
/ 14 сентября 2011

Вы пытаетесь получить доступ к закрытому методу, используя неправильный синтаксис - при использовании $page.method пытается вызвать его как открытый метод.

Изменение его на this._scrollMe должно работать.

...