1

我遇到了 jQuery 的问题,我可以让它在不同的测试环境中工作,但不是在我的开发站点上。我似乎找不到冲突或导致它的原因。

它应该如何工作:当您将鼠标悬停在图标上时,它会更改上面的可见 div。我在这里工作:http://codepen.io/redbranchmedia/pen/dkiCB 在这里:http : //jsfiddle.net/nXzFX/

HTML:

<div class="outercontainer">
<div class="slidecontainer slide1">
    <div class="innercontainer">
        <img class="productimg" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/300x250default.png" />
        <div class="prodpara"><h2>Talemetry</h2><p>is a cloud software solution that provides recruiters with all the tools they need to find, attract &amp; engage top talent. Talemetry works with your Applicant Tracking System and recruiting service providers to deliver a complete talent acquisition solution to support today’s recruiting challenges.</p>
        </div>
        <div class="ctabutton"> 
            <p class="ctatext">Put the Power of Talent Generation to Work At Your Work.</p>
            <img class="ctaline" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/vertical_line.png">
            <h3 class="ctaaction">Let's Talk >></h3>
        </div>
    </div>
</div>
<div class="slidecontainer slide2 hiddenslide">
    <div class="innercontainer">
        <img class="productimg" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/300x250default.png" />
        <div class="prodpara"><h2>Source &amp; CRM</h2><p>Search across all sources of hire, find and rank candidates for immediate job openings, all while building talent networks for the future.</p>
        </div>
        <div class="ctabutton"> 
            <p class="ctatext">Significantly reduce sourcing time and improve recruiter efficiency.</p>
            <img class="ctaline" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/vertical_line.png">
            <h3 class="ctaaction">Request a Demo >></h3>
        </div>
    </div>
</div>
<div class="slidecontainer slide3 hiddenslide">
    <div class="innercontainer">
        <img class="productimg" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/300x250default.png" />
        <div class="prodpara"><h2>Job Broadcast</h2><p>Post, manage, and compare the effectiveness of job postings across hundreds of job boards and social media sites all from one system.</p>
        </div>
        <div class="ctabutton"> 
            <p class="ctatext">Significantly reduce sourcing time and improve recruiter efficiency.</p>
            <img class="ctaline" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/vertical_line.png">
            <h3 class="ctaaction">Request a Demo >></h3>
        </div>
    </div>
</div>
<div class="slidecontainer slide4 hiddenslide">
    <div class="innercontainer">
        <img class="productimg" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/300x250default.png" />
        <div class="prodpara"><h2>Career Sites</h2><p>Promote jobs and strengthen your employer brand by building career sites using a simple Content Management System.</p>
        </div>
        <div class="ctabutton"> 
            <p class="ctatext">Deliver your employer brand every- where with Talemetry Career Sites.</p>
            <img class="ctaline" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/vertical_line.png">
            <h3 class="ctaaction">Request a Demo >></h3>
        </div>
    </div>
</div>
<div class="slidecontainer slide5 hiddenslide">
    <div class="innercontainer">
        <img class="productimg" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/300x250default.png" />
        <div class="prodpara"><h2>Apply</h2><p>Capture more of the best applicants by creating a simple, integrated, and social and mobile-ready application process.</p>
        </div>
        <div class="ctabutton"> 
            <p class="ctatext">Significantly reduce sourcing time and improve recruiter efficiency.</p>
            <img class="ctaline" src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/vertical_line.png">
            <h3 class="ctaaction">Request a Demo >></h3>
        </div>
    </div>
</div>

<div class="iconcontainer">
    <div class="icon icon1" data-slide="slide1">
        <img src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/talemetry_icon2.png">
        <p>Talemetry</p>
    </div>
    <div class="icon icon2" data-slide="slide2">
        <img src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/source_and_crm.png">
        <p>Source &amp; CRM</p>
    </div>
    <div class="icon icon3" data-slide="slide3">
        <img src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/job_broadcast.png">
        <p>Job Broadcast</p>
    </div>
    <div class="icon icon4" data-slide="slide4">
        <img src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/career_sites.png">
        <p>Career Sites</p>
    </div>
    <div class="icon icon5" data-slide="slide5">
        <img src="http://talemetry.redbranchmedia.com/wp-content/uploads/2013/08/apply.png">
        <p>Apply</p>
    </div>

</div>

CSS:

.outercontainer {
    width:100%;
}

.slidecontainer {
    width:100%;
    height:285px;
}

.slidecontainer.hiddenslide {
    display:none;
}

.slidecontainer.slide1 {
background-color:#b7be10;
}

.slidecontainer.slide2 {
background-color:#374bb5;
}

.slidecontainer.slide3 {
background-color:#ef123e;
}

.slidecontainer.slide4 {
background-color:#efae00;
}

.slidecontainer.slide5 {
background-color:#9d5bb6;
}

.slidecontainer .innercontainer {
    max-width:940px;
}

img.productimg {
    float:right;
}

.prodpara > H2 {
    font-size:30px;
    color:#fff;
}

.prodpara > p {
    font-size:18px;
    color:#fff;
}

.ctabutton p.ctatext {
    font-size:15px;
}

p.ctaline {
    font-size:;
}

h3.ctaaction {
    font-size:20px;
}

.iconcontainer {
    max-width:940px;
    width:100%;
    margin:0 auto;
}

.iconcontainer .icon {
    float:left;
    width:90px;
    text-align: center;
}

.iconcontainer .icon p {
    color:#585858;
    font-size: 14px;
}

JavaScript:

    <script type="text/javascript">
$('.iconcontainer .icon').on(
{
    mouseenter: function()
    {
        $('.outercontainer .slidecontainer').addClass('hiddenslide');
        var show_slide = $(this).attr('data-slide');
        $('.' + show_slide).removeClass('hiddenslide');
    }
});
</script>

我无法让它在我的开发站点上工作(我想要它):http ://talemetry.redbranchmedia.com/

我还在测试页面上设置了它,因为我认为滑块可能会干扰:http ://talemetry.redbranchmedia.com/testing-page/

不幸的是,它在开发站点上的任何地方都没有工作,但它在 JSFiddle 和 CodePen 站点上工作。

我尝试了很多事情,包括: 从 Google Developer Libraries 调用不同版本的 jQuery 在网站内部调用 jQuery 用“jQuery”替换我脚本中的“$”(主题作者似乎已经这样做了)等等,多得多。

我不知道是什么导致了冲突并阻止了它的运行。我很感激任何帮助。

4

2 回答 2

3

JSFiddle 和 CodePen 通常都会等待 dom 就绪事件来运行您的代码。

如果您的代码在这些网站上运行,我建议将您的代码包装在 $(document).ready() 块中,即:


$(document).ready(function(){
  $('.iconcontainer .icon').on(
  {
    mouseenter: function()
    {
        $('.outercontainer .slidecontainer').addClass('hiddenslide');
        var show_slide = $(this).attr('data-slide');
        $('.' + show_slide).removeClass('hiddenslide');
    }
  });
});
于 2013-08-08T18:51:30.780 回答
2

尝试封装在DOM准备好的处理程序中

$(function () {
    $('.iconcontainer .icon').on({
        mouseenter: function () {
            $('.outercontainer .slidecontainer').addClass('hiddenslide');
            var show_slide = $(this).attr('data-slide');
            $('.' + show_slide).removeClass('hiddenslide');
        }
    });
});

您的脚本是在 之前声明的body,并且元素在DOM. 所以 event 绑定到一个空的jQuery Object. 将代码封装在DOM处理程序中可确保元素在DOM绑定任何事件之前可用。如果不是,您可以将脚本移动到正文的结束标记之前。

于 2013-08-08T18:51:02.227 回答