Wie zu verwenden $() in jquery-Funktionen?

Ich versuche, diese Funktion funktioniert – aber Sie hat nicht geht die $(this), wenn es ausgelöst wird. Ich fand diese Frage, was zu sein scheint wirklich ähnliche Frage ( Wie verwenden Sie $(this) Funktionen? ), aber ich kann nicht herausfinden, warum es nicht funktioniert in meinem Fall.

Es wäre toll, wenn mir jemand helfen kann. Dank

JS:

    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));
    });
InformationsquelleAutor D20537 | 2016-05-09

 

2 Replies
  1. 0

    Einfachste option ist, um einen parameter zu scrolll und sich keine sorgen über es, zB:

    function scrolll(el)
    {
        var $this = $(el)
        var thiss = $this.attr('id').substring(1);
    
        .... etc
    
    $('.section2').on('scroll', function() {
        scrolll(this);
    });

    Aber was du suchst ist call:

    function scrolll()
    {
        ....
    
    $('.section2').on('scroll', function() {
        scrolll.call(this);
    });
    • vielen Dank, das war genau was ich suchte. – und es funktioniert.
  2. 0

    $(this) ist in Erster Linie in einer Funktion in Bezug auf den Selektor.

    E. g.

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

    In diesem Fall, $(this) Ziel wäre, die .button selector.

    • Das ist genau das Szenario, es ist in, aber wollen es weitergeben, um eine gemeinsame Funktion.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.