10

小伙伴们在这里快速提问,我似乎无法得到这个

$('#wrap').on('toggle', '#image', function(){
    <!-- Do stuff -->
  });

能够在里面有一个切换?有任何想法吗?我试过谷歌搜索,但没有运气。

这是我试图使用.on的代码,因为目前它不会将更改应用于页面上的所有元素(具有#image和#brick)

$("#result_options").toggle(function() {
        var image_width = $('#image').width() / 2;
        var brick_width = $('#brick').width() / 2;
        $("#image").css("width",image_width);
        $("#image").css("padding","4px");
        $("#brick").css("width",brick_width);
    },function (){
        $("#image").css("width","300");
        $("#image").css("padding","8px");
        $("#brick").css("width","314");
        $(this).html("Smaller Results");
    });
});
4

1 回答 1

24

您面临的问题是没有toggle事件;toggle()是一个 jQuery 方法。要实现toggle(),on()我认为您需要使用一个click事件,然后使用一个if语句来测试是否已打开或关闭/未切换某些内容

$('#wrap').on('click', '#image', function(){
    if (!$(this).attr('data-toggled') || $(this).attr('data-toggled') == 'off'){
        /* currently it's not been toggled, or it's been toggled to the 'off' state,
           so now toggle to the 'on' state: */
           $(this).attr('data-toggled','on');
           // and do something...
    }
    else if ($(this).attr('data-toggled') == 'on'){
        /* currently it has been toggled, and toggled to the 'on' state,
           so now turn off: */
           $(this).attr('data-toggled','off');
           // and do, or undo, something...
    }
});
于 2012-06-02T17:21:27.143 回答