首页 > 解决方案 > 这段代码是否会导致我的 mediaelement.js 播放器/播放列表出现 ajax 排序问题?

问题描述

我在修复我的 mediaelement.js 音乐播放器使用 ajax 对分类页面进行排序的方式时遇到问题,我需要帮助!我在编码方面还差得很远,但我知道足以运行一个电子商务网站。我遇到的问题是分类页面播放错误的歌曲,即使播放列表中歌曲的顺序是正确的。示例:主页(example.com)上的主音乐播放器按从最新到最旧的降序播放最新上传的歌曲(example-song1),这是正确的,但是当您转到诸如 example.com/ 之类的分类页面时流派/替代播放列表将以 example-song5 开头,但无论您使用自动播放还是手动按下播放,播放列表都会播放 example-song1,但如果您单击下一个曲目按钮,它将播放 example-song5。我知道它与 ajax 有关,因为如果您在分类页面上使用排序栏并搜索包含 example-song1 的分类(流派、类别、标签)组,即使 example-song5 也会突出显示 example-song1应该会玩。在主题作者实现 ajax 排序之前,这个错误也从未发生过。此代码中的任何内容都可能导致问题并且可以修复吗?

/*******************************************
    Player Ajax Sorting Code
********************************************/

// Genre
var kl = jQuery.noConflict();

kl(function(){
var lmn;

 kl("#generId li").click(function(e){

        e.preventDefault();
        var genrTxt = kl.trim(kl(this).find('a').text().toLowerCase());
     // Shows clear button
     kl("#filterLielm").removeClass("hide");
 var wWid = kl(window).width();
    kl(".mejs-playlist li").removeClass("hide");
    kl(".mejs-playlist li").removeAttr("style");
        kl(".mejs-playlist li").each(function(){

      var liAttr = kl(this).attr('data-genr').toLowerCase();
        var dk = liAttr.replace(", "," ");

            if(dk.indexOf(genrTxt) == -1){

            kl(this).addClass("hide");
            }
        });

     /* ---- Mobile Action Code --- */
     if(wWid <= 1024){
        kl("#beat_sort_bar a.firstULLIelement").click(function(){
            if(kl('#beat_sort_bar ul.secondULelement.hide').length){
               kl('#beat_sort_bar ul.secondULelement').removeClass('hide');
            }
        });
        if(!kl('#beat_sort_bar ul.secondULelement.hide').length){
        kl('#beat_sort_bar ul.secondULelement').addClass('hide');
        }

    }
    });

    var taggenre =  kl("audio").attr("tag-genre");

    if(taggenre){
        var taggenreTxt = taggenre.trim(kl(this).find('a').text().toLowerCase());

    kl(".mejs-playlist li").removeClass("hide");
    kl(".mejs-playlist li").removeAttr("style");
        kl(".mejs-playlist li").each(function(){

      var liAttr = kl(this).attr('data-genr').toLowerCase();
        var dk = liAttr.replace(", "," ");

            if(dk.indexOf(taggenreTxt) == -1){

            kl(this).addClass("hide");
            }
        });
    }

// Category
var kh = jQuery.noConflict();
kh("#catId li").click(function(e){
  e.preventDefault();
  var genrTxt = kh.trim(kl(this).find('a').text().toLowerCase());
  kh("#filterLielm").removeClass("hide");
  var wWid = kl(window).width();
  kh(".mejs-playlist li").removeClass("hide");
  kh(".mejs-playlist li").removeAttr("style");
  kh(".mejs-playlist li").each(function(){
      var liAttr = kh(this).attr('data-cat').toLowerCase();
      if(liAttr.indexOf(genrTxt) == -1){
        kh(this).addClass("hide");
      }
  });
  /* ---- Mobile Action Code --- */
  if(wWid <= 1024){
        kl("#beat_sort_bar a.firstULLIelement").click(function(){
            if(kl('#beat_sort_bar ul.secondULelement.hide').length){
                kl('#beat_sort_bar ul.secondULelement').removeClass('hide');

            }

        });
        if(!kl('#beat_sort_bar ul.secondULelement.hide').length){
        kl('#beat_sort_bar ul.secondULelement').addClass('hide');
        }

    }
});

var termcat =  kh("audio").attr("tag-cat");

    if(termcat){
        var termcatTxt = termcat.trim(kl(this).find('a').text().toLowerCase());

    kh(".mejs-playlist li").removeClass("hide");
    kh(".mejs-playlist li").removeAttr("style");
        kh(".mejs-playlist li").each(function(){

      var liAttr = kl(this).attr('data-cat').toLowerCase();
        var dk = liAttr.replace(", "," ");

            if(dk.indexOf(termcatTxt) == -1){

            kl(this).addClass("hide");
            }
        });
    }

// Tags
var kd = jQuery.noConflict();
kd("#tagId li").click(function(e){
  e.preventDefault();

  var genrTxt = kd.trim(kl(this).find('a').text().toLowerCase());
 kd("#filterLielm").removeClass("hide");
 var wWid = kl(window).width();
  kd(".mejs-playlist li").removeClass("hide");
  kd(".mejs-playlist li").removeAttr("style");
  kd(".mejs-playlist li").each(function(){
  var liAttr = kd(this).attr('data-tag').toLowerCase();
  if(liAttr.indexOf(genrTxt) == -1){
    kd(this).addClass("hide");
  }

  });
  /* ---- Mobile Action Code --- */
  if(wWid <= 1024){
        kl("#beat_sort_bar a.firstULLIelement").click(function(){
            if(kl('#beat_sort_bar ul.secondULelement.hide').length){
                kl('#beat_sort_bar ul.secondULelement').removeClass('hide');
            }
        });
        if(!kl('#beat_sort_bar ul.secondULelement.hide').length){
        kl('#beat_sort_bar ul.secondULelement').addClass('hide');
        }

    }
});

var termtag =  kd("audio").attr("tag-tag");

    if(termtag){
        var termtagTxt = termtag.trim(kd(this).find('a').text().toLowerCase());
        kd(".mejs-playlist li").removeClass("hide");
        kd(".mejs-playlist li").removeAttr("style");
            kd(".mejs-playlist li").each(function(){

          var liAttr = kd(this).attr('data-tag').toLowerCase();
            var dk = liAttr.replace(", "," ");

                if(dk.indexOf(termtagTxt) == -1){

                kd(this).addClass("hide");
                }
            });
    }

// Price
var kdd = jQuery.noConflict();
kdd("#priceId li").click(function(e){
  e.preventDefault();

  var genrTxt = kdd.trim(kl(this).find('a').text().toLowerCase());
  kdd("#filterLielm").removeClass("hide");
  var wWid = kl(window).width();
  kdd(".mejs-playlist li").removeClass("hide");
  kdd(".mejs-playlist li").removeAttr("style");
  kdd(".mejs-playlist li").each(function(){

  var liAttr = kdd(this).attr('dataprice');
  if(liAttr != ''){
  liAttr = kdd(this).attr('dataprice').toLowerCase();


      if(liAttr.indexOf(genrTxt) == -1){
          kdd(this).addClass("hide");
      }
  }
  });
  /* ---- Mobile Action Code --- */
  if(wWid <= 1024){
        kl("#beat_sort_bar a.firstULLIelement").click(function(){
            if(kl('#beat_sort_bar ul.secondULelement.hide').length){
                kl('#beat_sort_bar ul.secondULelement').removeClass('hide');
            }
        });
        if(!kl('#beat_sort_bar ul.secondULelement.hide').length){
            kl('#beat_sort_bar ul.secondULelement').addClass('hide');
        }

    }
});

var termprice =  kdd("audio").attr("tag-price");

    if(termprice){
        var termpriceTxt = termprice.trim(kdd(this).find('a').text().toLowerCase());

    kdd(".mejs-playlist li").removeClass("hide");
    kdd(".mejs-playlist li").removeAttr("style");
        kdd(".mejs-playlist li").each(function(){

      var liAttr = kdd(this).attr('dataprice').toLowerCase();
        var dk = liAttr.replace(", "," ");

            if(dk.indexOf(termpriceTxt) == -1){

            kdd(this).addClass("hide");
            }
        });
    }

// Search
var sh =   jQuery.noConflict();
sh('#playersearch').submit( function(e){
e.preventDefault();
var shtxt = sh(this).find(".beat-sort-search-input").val().toLowerCase();

// Clear button
sh("#filterLielm").removeClass("hide");
     sh(".mejs-playlist li").removeClass("hide");
     sh(".mejs-playlist li").removeAttr("style");


sh(".mejs-playlist li").each(function(){

var chkpost = sh(this).text()+sh(this).attr('data-tag')+sh(this).attr('data-
cat')+sh(this).attr('dataprice')+sh(this).attr('data-genr');
chkpost = chkpost.toLowerCase();
chkpost= chkpost.replace(", "," ");
//alert(chkpost);
if(chkpost.indexOf(shtxt) == -1){

    sh(this).addClass("hide");
  }
});

});
// Category page, taxonomy page, tag page sorting code
var generList = sh("#jio").attr('datagen');
var tagList = sh("#jio").attr('datatag');
var catList = sh("#jio").attr('datacat');
var priceList = sh("#jio").attr('dataprice');

if(generList){ sh(".mejs-playlist li").each(function(){
var genlist = generList.toLowerCase();
var liAttr = sh(this).attr('data-genr').toLowerCase();
  var dk = liAttr.replace(", "," ");

    if(dk.indexOf(genlist) == -1){

     sh(this).addClass("hide");
   }

 });}

//if(tagList != ''){
if(tagList){
sh(".mejs-playlist li").each(function(){

    var taList = tagList.toLowerCase();

    var liAttr = sh(this).attr('data-tag').toLowerCase();

    if(taList){

        if(liAttr.indexOf(taList) == -1){
            sh(this).addClass("hide");
        }
    }

});
}
if(catList){

sh(".mejs-playlist li").each(function(){

    var catuList = catList.toLowerCase();

    var liAttr = sh(this).attr('data-cat').toLowerCase();

    if(liAttr.indexOf(catuList) == -1){
        sh(this).addClass("hide");
    }

});
}
if(priceList){
sh(".mejs-playlist li").each(function(){
var pricuList = priceList.toLowerCase();
var liAttr = sh(this).attr('dataprice').toLowerCase();

        //alert(liAttr+pricuList);
        if(liAttr.indexOf(pricuList) == -1){

         sh(this).addClass("hide");
       }
});
}

更新

/********
* Genre Dropdown
*********/
if ( get_theme_mod('beat_sorting_bar_genre',true ) ) { ?>
<li class="dir"><a href="javaScript:void(0);" ><i class="fa fa-music"></i>
<?php _e( 'Genre', 'musicmaker' ); ?></a>
<ul id="generId"><?php $variable = wp_list_categories( array( 'taxonomy'
=> 'genre', 'use_desc_for_title' => 0,  'orderby' => 'name', 'echo' => 0,
'show_count' => 1, 'title_li' => '' ) );
$variable = str_replace(' (', '<span class="count">', $variable);
$variable = str_replace(')', '</span>', $variable); echo $variable; ?>
</ul></li>
<?php }
/********
*  Category Dropdown
*********/
if ( get_theme_mod('beat_sorting_bar_categories',false ) ) {  ?>
<li class="dir"><a href="javaScript:void(0);" ><i class="fa fa-list-ul">
</i> <?php _e( 'Category', 'musicmaker' ); ?></a>
<ul id="catId"><?php $variable = wp_list_categories( array( 'taxonomy' =>
'download_category',  'use_desc_for_title' => 0,'orderby' => 'name',
'show_count' => 1, 'echo' => 0, 'title_li' => '' ) );
$variable = str_replace(' (', '<span class="count">', $variable);
$variable = str_replace(')', '</span>', $variable); echo $variable; ?> 
</ul></li>
<?php }
/********
* Tag Dropdown
*********/
if ( get_theme_mod('beat_sorting_bar_tags',true ) ) { ?>
<li class="dir"><a href="javaScript:void(0);" ><i class="fa fa-tag"></i>
<?php _e( 'Tag', 'musicmaker' ); ?></a>
<ul id="tagId"><?php $variable = wp_list_categories( array( 'taxonomy' =>
'download_tag', 'use_desc_for_title' => 0, 'orderby' => 'name',
'show_count' => 1, 'echo' => 0, 'title_li' => '' ) );
$variable = str_replace(' (', '<span class="count">', $variable);
$variable = str_replace(')', '</span>', $variable); echo $variable; ?>
</ul></li>
<?php }
/********
* Price Dropdown
*********/
if ( get_theme_mod('beat_sorting_bar_price',false ) ) { ?>
<li class="dir"><a href="javaScript:void(0);" ><i class="fa fa-usd"></i>
<?php _e( 'Price', 'musicmaker' ); ?></a>
<ul id="priceId"><?php $variable = wp_list_categories( array( 'taxonomy'
=> 'price_taxonomy', 'use_desc_for_title' => 0, 'order' => 'asc',
'orderby' => 'slug', 'show_count' => 1, 'echo' => 0, 'title_li' => '' ) );
$variable = str_replace(' (', '<span class="count">', $variable);
$variable = str_replace(')', '</span>', $variable); echo $variable; ?>
<?php /* Removed echo customsqlfunction(); */ ?></ul></li><?php } ?>
</ul>
<?php

最后更新

* If Genre */             if ( is_tax('genre')) {            $termgenre = get_term_by ( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); }
/* If Tags */              if (is_tax('download_tag')) {      $termtag   = get_term_by(  'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); }
/* If Categories */        if (is_tax('download_category')) { $termcat   = get_term_by(  'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); }
/* If Price */             if (is_tax('price_taxonomy')) {    $termprice = get_term_by(  'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) ); }
/* If Search */            if ( is_search() ) { if ( have_posts() ) { $search_query = get_search_query(); } else { } }

//$random = '';
/* Autostart Check */      $autostart = get_theme_mod('beat_store_auto_start', 'false');
/* Loading Gif   */        echo '<div id="beatstore_loader"><img alt="Loading..." src="' . get_template_directory_uri(). '/images/loader.gif" /></div>';
/* Content Fade      */    echo '<div id="beatstore_loader_window">';
/* Load Beat Sort Bar */   get_template_part( 'template-parts/beat-sort-menu' );
/* Beat Store Playlist */  echo '<div id="mediawrapper">';
echo '<audio id="mejs" style="width:100%;" preload="none" '; if   ($autostart == "true") { echo 'autoplay="autoplay" '; }
if ( is_tax('genre') )              { if($termgenre)     { echo 'tag-genre="' .strtolower($termgenre->name).'"'; } }
if ( is_tax('download_tag' ) )      { if($termtag)       { echo 'tag-tag="'   .strtolower($termtag->name).'"';   } }
if ( is_tax('download_category' ) ) { if($termcat)       { echo 'tag-cat="'   .strtolower($termcat->name).'"';   } }
if ( is_tax('price_taxonomy' ) )    { if($termprice)     { echo 'tag-price="' .strtolower($termprice->name).'"'; } }
if ( is_search() )                  { if($search_query)  { echo 'tag-search="'.strtolower($search_query).'"';    } }
if ( get_theme_mod('beat_store_order') == "random") { $random = 'rand'; }
?> controls>
<?php $n = ''; if (is_customize_preview()){$n='5';}
else{if(valchker()){$n=valchker();}} $args =    array('post_type'=>'download','posts_per_page' => $n, 'order' => 'DESC' ,'orderby' => $random );
$query = new WP_Query($args); while($query -> have_posts()) : $query -> the_post();
get_template_part( 'template-parts/beat-store-loop-playlist' ); endwhile; wp_reset_query();
echo '</audio><div class="clear"></div></div><div class="clear"></div></div>';?>

标签: javascriptphphtmlajaxmediaelement.js

解决方案


推荐阅读