2017-11-29 10 views
-1

クリックすると色が変わるようにWordPressのプラグイン(Spider Calendar)を操作しています。ページが最初にロードされると、イベントリスナーがインスペクタにリストされます。 「2016」、「2018」、左矢印または右矢印をクリックすると、インスペクタの「イベントリスナ」タブからイベントリスナが消えますが、まだソースコードに表示されています。矢印をクリックするとイベントリスナーが消える

いくつかの研究から、要素が破壊されている可能性があると私は考えていますか?カレンダーのたびにイベントリスナーをリロードするにはどうすればよいですか?または、問題の原因がもう1つありますか?

マイイベントリスナー:

if (window.location.href.indexOf("bounce-houses/") > -1) { 
    var element = $('#afterbig1 table table table tr:nth-child(n+2) td'); 
    element.click(function() { 
    if ($(this).is(":nth-last-child(2)") || $(this).is(":last-child") || $(this).is(":first-child")) { 
     $(this).toggleClass("selectedWeekend"); 
     if ($(this).hasClass("calsun_days")) { 
     $(this).toggleClass("sundays"); 
     $(this).toggleClass("calsun_days"); 
     } else if ($(this).hasClass("sundays")) { 
     $(this).toggleClass("sundays"); 
     $(this).toggleClass("calsun_days"); 
     } 
    } else if ($(this).is('td:nth-child(n+2):nth-child(-n+5)')) { 
     $(this).toggleClass("selectedDays"); 
    } 
    }); 
} 
}); 

問題のページ:(カレンダーコードはここで追加するには余りにも多くの文字です)

johnabounceandplay.com/bounce-houses/combo-house

答えて

0

あなたの要素は何もリスナーが取り付けられていない再う破壊されている場合レクリエーション後にそれに戻る

速い解決策は、clickイベントを常にそこに存在するいくつかの要素にバインドすることですbody

は、次のことを試してください:

if(window.location.href.indexOf("bounce-houses/") > -1){ 

    $('body').on('click', '#afterbig1 table table table tr:nth-child(n+2) td', function() { 
     if($(this).is(":nth-last-child(2)") || $(this).is(":last-child") || $(this).is(":first-child")){ 
      $(this).toggleClass("selectedWeekend"); 
      if($(this).hasClass("calsun_days")){ 
       $(this).toggleClass("sundays"); 
       $(this).toggleClass("calsun_days"); 
      } 
      else if ($(this).hasClass("sundays")){ 
       $(this).toggleClass("sundays"); 
       $(this).toggleClass("calsun_days"); 
      } 
     } 

     else if($(this).is('td:nth-child(n+2):nth-child(-n+5)')){ 
      $(this).toggleClass("selectedDays"); 
     } 
    }) 

} 
}); 
+0

は、それはそれを修正し、本当にありがとうございました! –

関連する問題