2016-05-27 14 views
1

私はwp投稿リストと呼ばれるWordPressのプラグインをカスタマイズしようとしています。プラグインに自動化機能がないため、より多くのボタンをラップする#basic-waypoint-cyberwrathをターゲットにしたいと思います。それは私がそれが好きではないボタンを手動でクリックする必要があります。ウェイポイントとインビューjquery。 DOMの問題を解決するには

これは私がのInViewのために、これまで持っているコードです:

var inview = new Waypoint.Inview({ 
    element : $('#basic-waypoint-cyberwrath')[0], 
    enter : function(direction) { 
     //alert('Enter triggered with direction ' + direction) 
    }, 
    entered : function(direction) { 
     //alert('Entered triggered with direction ' + direction) 
     $('.wpp_loadmore_pager').click(); 
    }, 
    exit : function(direction) { 
     //alert('Exit triggered with direction ' + direction) 
    }, 
    exited : function(direction) { 
     //alert('Exited triggered with direction ' + direction) 
    } 
}); 

私は、アラート機能を使用する場合。 IDに何回スクロールしても、それは非常にうまく表示されます。アラート機能を起動し続けます。しかし、私はクリック機能を使用しました。追加ボタンをクリックするたびに#basic-waypoint-cyberwrathが新たに動的に読み込まれるため、1回だけ起動します。これは私がこれまで行ってきた最も近いコードです。 。

そして、これは私がウェイポイントのために、これまでに得たコードです:

var $fusionheader = $('#basic-waypoint-cyberwrath'); 
$fusionheader.waypoint(function(direction) { 
    if (direction === 'down') { 
     // do stuff 
     //alert('I am going down'); 
     $('.wpp_loadmore_pager').click(); 
    } 
    jQuery.waypoints('refresh'); 
}, { 
    offset : '90%' 
}); 

私はすでにほとんどすべてを試してみました。私はここで何が欠けているかもう分かりません。 最初にスクロールするときには両方とも良好ですが、#基本ウェイポイント - サイバーワールドを見るとトリガーしますが、もう1つのラウンドではそれ以上トリガーしないので、他のポストリスティングを見るためにmoreボタンを押します。

私もforループ文ではなく、まだ運試してみました:助けてください

var discreteElements = document.getElementById('basic-waypoint-cyberwrath'); 
for (var i = 0; i < discreteElements.length; i++) { 
    new Waypoint.Inview({ 
     element : this, 
     enter : function(direction) { 
     }, 
     entered : function(direction) { 
      //animatelettering.textillate('in') 
      $('.wpp_loadmore_pager').click(); 
     }, 
     exit : function(direction) { 
      //animatelettering.textillate('out') 
     }, 
     exited : function(direction) { 
     } 
    }); 
}; 

を。

+0

これはDOMの問題のように私に聞こえる。 '.wpp_loadmore_pager'はスクロール後に動的に追加される可能性が高いので、' .click() 'はオリジナルのDOM要素にのみ影響します。 '.wpp_loadmore_pager'がクリックされたときに何が起こるか(または起こるはずです)?また、その要素を手動でクリックできますか?そうであれば、それは機能しますか? – johnniebenson

+0

はい、それはジョンを働かせます。 DOMの問題について。ああなるほど。知りませんでした。私はそれが問題だと思う。 その解決策はありますか?そして、あなたは正しいです。 wpp_loadmore_pagerは無限スクロールで動的にロードされます –

+0

@ johnniebenson .wpp_loadmore_pagerをクリックすると、それが消え、ローディングアイコンが表示されます。それは他の10個の投稿リストをロードし、10個の投稿リストをロードした後に新しい.wpp_loadmore_pagerボタンが表示されます。 –

答えて

0

これらの投稿(おそらく関数)の読み込みを実際に引き起こしているものを追跡し、そこでクリックイベントにハンドラを再接続する必要があります。あなたが最も可能性の高い.wpp_loadmore_pagerどこかに添付クリックイベントを持っており、それはいくつかの機能(load_posts()、get_posts()など)を実行している

$(".container").on("click", ".wpp_loadmore_pager", function() { 
    //load_function(); 
}); 

を使用することによって、これを達成することができます。その関数では、そのボタンを再作成するコードが表示されます。ここで、ハンドラを再接続する必要があります。

+0

Johnniebensonこんにちは、助けてくれてありがとうございますが、私が必要としていることを理解しているかどうかはわかりません。ただもっと明確にして、私たちが同じページにいるかどうかを確認してください。このビデオをチェックしてください: http://cyberwrathinternetmarketing.com/graphicdesigns/infinite-scroll.wmv –

+0

ご覧のとおりです。無限のスクロールを持つWordPressプラグインは、手動でロードボタンをクリックする必要がありますが、そのようなコンセプトは気に入らないのです。私のカスタムコードを使用する。私がスクロールダウンし、ウェイポイントとインビューを使用してターゲットIDをヒットしたとき。ボタンのクリックイベントを自動化することができました。しかし、2番目のスクロールダウン。自動化されたクリックは機能しませんでした。それは私がそれを修正する必要があるDOMの問題が始まるところです。 –

+0

あなたのon()jqueryはこの種のオートメーションクリックの解決策ですか?私はon()についてのあなたの提案はまだそれを手動でクリックする必要があると思いますか?手動でクリックする必要はありません。 ターゲットID basic-waypoint-cyberwrathまでスクロールすると自動的にクリックされます。一度このコードは完全に動作しています。より多くのボタンを永久に隠すことができます。ちょうどnewsroom.uber.comのように私の究極の目標です。 :) –

関連する問題