3

我有这两个功能,我想应用于同一次点击(我确实在点击功能中都有它们,结果相同......图像切换每次都有效,但显示/隐藏切换(“optionToggle”)仅第一次工作。两者分别工作正常

提前致谢

function imageToggle() {
    var img = $('.choices').find('.btn').children().children('img');
    img.toggle(function () {img.attr("src","images/misc/dotr-add.png");},
    function () {img.attr("src","images/misc/dotr-minus.png");}
    );
}


function optionToggle() {
    var option = $('.choices').find('.btn').closest('.dishActions').children('.option');
    option.toggle();
}
$('.btn').click(function() {
    optionToggle(); 
    imageToggle();
});

这是代码 -

<div class="dishActions"> 
    <!-- DISH CHOICE --> 
    <div class="choices"> 
        <div class="btn">
            <a href="#">
            <img src="images/misc/dotr-add.png" height="40" width="40" alt="button up" border="0" /> 
        </div> 
        <div class="choicesTxt">Choices </div> 
    </div> 
    <!-- DISH OPTIONS --> 
    <div class="option">
4

1 回答 1

2
$('.btn').on('click', function() {
    var state = $(this).data('state'),
        image = state ? 'dotr-add' : 'dotr-minus';
    $(this).data('state', !state)
           .find('img')
           .prop('src', 'images/misc/' + image + '.png');
});

编辑:

我不明白你为什么想要这个,但有功能:

function imageToggle(state, elem) {
    var image = state ? 'dotr-add' : 'dotr-minus';

    $(elem).find('img').prop('src', 'images/misc/' + image + '.png');
}

function optionToggle(state, elem) {
    $(elem).closest('.dishActions').children('.option').toggle(!state);
}

$('.btn').on('click', function() {
    var state = $(this).data('state');
    imageToggle(state, this);
    optionToggle(state, this);
    $(this).data('state', !state)
});
于 2013-05-16T15:46:10.377 回答