Wordpress:主页js与投资组合页面插件的js冲突

时间:2018-05-10 07:32:34

标签: javascript wordpress plugins

我已经下载了 Awesome Filterable Portfolio插件,它运行正常..但是当我在主页上添加了一个用于滚动轮播的js文件时,该插件的js停止工作..

我已在 cr-scroll.js 中添加 functions.php 文件,如下所示:

wp_register_script('java1', get_template_directory_uri() . '/js/cr-scroll.js', array( 'jquery' ));
wp_enqueue_script( 'java1' );

我尝试过的事情:

  • $.noConflict();
  • $
  • 替换jquery
  • 将代码包装在

    (function($){
    
       $(document).ready(function(){
    
       });
    
    })(jQuery);
    

    但没有任何效果。

我的js文件是 cr-scroll.js

  (function($){
        $(document).ready(function($) {
         $.fn.make_carousel = function() {
            var speed = 0;
            var scroll = 0;
            var con = $(this);
            var con_w = con.width();
            var max_scroll = con[0].scrollWidth - con.outerWidth();
            var prev_frame = new Date().getTime();
            con.on('mousemove', function(e) {
                var mouse_x = e.pageX - con.offset().left;
                var mouseperc = 100 * mouse_x / con_w;
                speed = mouseperc - 50;
            }).on ( 'mouseleave', function() {
                speed = 0;});

            function updatescroll() {
                var cur_frame = new Date().getTime();
                var time_elapsed = cur_frame - prev_frame;
                prev_frame = cur_frame;
                if (speed !== 0) {
                    scroll += speed * time_elapsed / 50;
                    if (scroll < 0) scroll = 0;
                    if (scroll > max_scroll) scroll = max_scroll;
                    con.scrollLeft(scroll);
                }
                window.requestAnimationFrame(updatescroll);
            }
            window.requestAnimationFrame(updatescroll);
        }
        $("#carousel1").make_carousel();
        $("#carousel2").make_carousel();

        function reset(){
            $('.maincontent').find('*').removeAttr('class');
            document.getElementById('step1').setAttribute("class", "visible");
        }   
        function back(){
            var previous_class = $('.visible').data('previous');
            if(previous_class != ''){
                var current_class = $('.visible').attr('id');
                document.getElementById(current_class).setAttribute("class","");
                document.getElementById(previous_class).setAttribute("class","visible");
            }
        }
        function show_next(current,next) {
            document.getElementById(current).setAttribute("class", "hidden");
            document.getElementById(next).setAttribute("class", "visible");
        }

        function show_hide(show_ele,hide_ele) {
            document.getElementById(show_ele).style.display = "block";
            document.getElementById(hide_ele).style.display = "none";
        }
        function load_after_sec(id) {
            count = 0;
            wordsArray = ["5", "4", "3", "2", "1"];
            var timerID = setInterval(function () {
                count++;
                if(count == 5){
                    $("#"+id).show();
                    $("#seconds_counter").hide();
                    clearInterval(timerID);
                } else {
                    $("#num_sec").fadeOut(400, function () {
                        $(this).text(wordsArray[count % wordsArray.length]).fadeIn(400);
                    });
                }                               
            }, 2000);
        }
        function showButton(){
            document.getElementById("btn_repeat").style.display='block';
        }
});

    })(jQuery);      

在主页转到portfolio部分,由于js滚动,点击visit portfolio按钮后,您将被重定向到投资组合页面,投资组合的过滤器无法点击,由于js冲突而变化。

控制台为cr-scroll.js

con[0] is undefined.文件提供错误

如果我删除此文件,那么插件工作正常,为什么它是冲突的?

任何帮助将不胜感激,谢谢你提前。

0 个答案:

没有答案