Jquery点击事件未被触发

时间:2016-03-02 19:11:25

标签: javascript jquery html mobile

一直试图在我的网站页面上执行DIV隐藏节目。

使用简单的javascript工作正常,但发现它在移动设备上模拟时无法正常工作。经过一些研究我将代码更改为以下内容,是否有任何错误?

<script>
    $(document).ready(function() {
        var portfolioDiv = document.getElementById('portfolio');
        var resultsDiv = document.getElementById('results');

        var portfolioBtn = document.getElementById('RenderPortfolio_Btn');
        var resultsBtn = document.getElementById('RenderResults_Btn');
        //portfolioBtn.onclick = function () resultsBtn.onclick = function ()
        $('#portfolioBtn').on('click touchstart', function() {
            resultsDiv.setAttribute('class', 'col-md-9 hidden');
            portfolioDiv.setAttribute('class', 'col-md-9 visible');
        });

        $('#resultsBtn').on('click touchstart', function() {
            portfolioDiv.setAttribute('class', 'col-md-9 hidden');
            resultsDiv.setAttribute('class', 'col-md-9 visible');
        });
    });
</script>

这是我的导航栏堆栈,其中两个选项充当按钮

<div class="col-md-3 col-sm-12 col-xs-12">
    <br />
    <ul class="nav nav-stacked">
        <li style="background-color: lightgreen ; color:black;font-weight:bold"><a href="#" id="RenderPortfolio_Btn">Introduction</a>
        </li>
        <li style="background-color: lightgreen; color:black;font-weight:bold"><a href="#" id="RenderResults_Btn">Key Achievements</a>
        </li>
    </ul>
</div>

2 个答案:

答案 0 :(得分:1)

您的代码缺少clicktouchstart之间的逗号 你的id选择器也不正确

 $('#RenderPortfolio_Btn').on('click, touchstart', function() {
            resultsDiv.setAttribute('class', 'col-md-9 hidden');
            portfolioDiv.setAttribute('class', 'col-md-9 visible');
        });

答案 1 :(得分:1)

您混淆了使用按ID选择的jQuery选择器引用元素的变量。基本上你可以删除以下行:

var portfolioBtn = document.getElementById('RenderPortfolio_Btn');
var resultsBtn = document.getElementById('RenderResults_Btn');

然后将您的jQuery选择器更改为:

$('#RenderPortfolio_Btn').on('click touchstart', function() {

$('#RenderResults_Btn').on('click touchstart', function() {