2016-05-09 3 views
0

Я пытаюсь заставить эту функцию работать, но она не получила geht $ (this), если она уволена. Я нашел этот вопрос, который кажется действительно похожим вопросом (How to use $(this) in functions?), но я не могу понять, почему он не работает в моем случае.

Было бы здорово, если бы кто-то мог мне помочь. Благодаря

function scrolll(){ 
 
     var thiss = $(this).attr('id').substring(1); 
 
     var pos = $(this).scrollTop(); 
 
     // var next = Number(thiss) + 1; 
 
     // var prev = Number(thiss) - 1; 
 

 
     count = Number(thiss); 
 

 
     if (pos == 0) { 
 
      $(".section#s" + (count - 1)).removeClass("inactive", 1500, "linear"); 
 
      $(this).removeClass("active", 1500, "linear"); 
 
      var count = Number(thiss) - 1; 
 
     } 
 

 
     if($(this).scrollTop() + $(this).innerHeight() >= $(this)[0].scrollHeight) { 
 
      $(this).addClass("inactive", 1500, "linear"); 
 
      $(".section#s" + (count + 1)).addClass("active", 1500, "linear"); 
 
      var count = Number(thiss) + 1; 
 
      console.log("countbefore: " + count); 
 
      count++; 
 
      console.log("countafter: " + count); 
 
     } 
 
    } 
 

 

 

 

 
$('.section1').on('scroll', function() { 
 
     console.log(thiss) 
 
     scrolll($(this)); 
 
    }); 
 

 
$('.section2').on('scroll', function() { 
 
     console.log(thiss) 
 
     scrolll($(this)); 
 
    });

ответ

0

Самый простой вариант, чтобы добавить параметр scrolll и не беспокоиться примыкают это, например:

function scrolll(el) 
{ 
    var $this = $(el) 
    var thiss = $this.attr('id').substring(1); 

    .... etc 

$('.section2').on('scroll', function() { 
    scrolll(this); 
}); 

Но то, что вы ищете call:

function scrolll() 
{ 
    .... 

$('.section2').on('scroll', function() { 
    scrolll.call(this); 
}); 
+0

большое спасибо, это было именно то, что я искал. - и он работает. –

0

$(this) в основном используется в функции, относящейся к селектору.

E.g.

$('.button').click(function(){ 
$(this).css('color','red'); 
}); 

В этом случае $ (это) будет предназначаться селектор .button.

+0

Это именно сценарий он используется, но хочет передать его общей функции. –

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