1

http://jsfiddle.net/hNpmc/

只是需要一些帮助来解决这个小问题,例如,如果我对苹果投票,我想禁用苹果之后的所有链接,这个脚本以某种方式工作,但它不像我想要的那样工作,但我仍在学习 jQuery,所以我没有足够的经验

<script type="text/javascript">

    $(document).ready(function() {

        $("#container .bar a").click(function() {

            var target = $(this);

            target.html('Voted').addClass('voted');

            //$('span a').removeAttr('href'); // this doese not help



            return false;
        });
});

</script>




<div id="container"> 


<span id="question">What is your favorite</span>



 <div class="bar"><span> 10% </span><span><a class="a" href="">Vote</a></span> apple</div>
 <div class="bar"><span> 20% </span><span><a class="a" href="">Vote</a></span> banana</div>
 <div class="bar"><span> 30% </span><span><a class="a" href="">Vote</a></span> lemon</div>


</div><!--end container-->
4

2 回答 2

2

那是你要的吗?

    $(document).ready(function() {

        $("#container .bar a").click(function() {

            var target = $(this);

            // disabling all next a links
            var allNext = target.parents('.bar').nextAll().css("opacity",0.5);                                                                
            allNext.find("a").removeAttr("href").off("click mouseover mouseenter");                                

            $(this).addClass('voted').html('Voted');                
            $(this).removeAttr('href');                        

            return false;
        });
});

在这里工作小提琴:http: //jsfiddle.net/hNpmc/4/

于 2013-09-16T08:30:44.343 回答
0

<a>要禁用所有链接但仅针对单击的链接显示“已投票”文本,请修改您的代码,如下所示:

$(document).ready(function () {
    $("#container .bar a").click(function () {
        var target = $("#container .bar a");
        $(this).html('Voted').addClass('voted');
        target.removeAttr('href').off('click');
        return false;
    });
});

$(this)指向<a>被点击的那个,因此文本更改只是为了那个而完成的。target = $("#container .bar a");将意味着所有此类<a>元素都被选中,off('click')并将禁用所有这些元素上的click事件。

演示链接

于 2013-09-16T08:16:46.343 回答