0

以下のクロージャー内のjQueryオブジェクトのセレクターにアクセスしようとしているので、それを指定したりキャッシュしたりする必要はありません。$(".the_lead") を $this に置き換えると、そのアクションは実行されません。

プラグインの呼び出し

$(".the_lead").scroll_lead({speedup: 400});

ブロック

var $this = $(this);

$(window).scroll(function() {

    var window_height = $(window).height();
    var document_height = $(document).height();
    var hide_lead;
    var scrollTop = $(window).scrollTop();

    console.log($this);

    if(!hide_lead){

        if(scrollTop>(document_height/2)){
            $(".the_lead").slideDown(options.speedup);
            }else{
            $(".the_lead").slideUp(500,function(){
                $(".the_lead").hide();
          });}
         }


        $('#hide_lead').click(function(e){
            //$(".the_lead").parent().parents('div').hide();
            hide_lead = true;           
            e.preventDefault();
        });     

    }); 

$(this) のコンソール出力:

[selector: ".the_lead", context: document, constructor: function, init: function, selector: ""…]
context: #document
length: 0
selector: ".the_lead"
__proto__: Object[0]
4

1 に答える 1