2012-06-02 75 views
10

快速的問題,大家好,我似乎無法得到這個。對()切換在這裏一起工作

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

,以便能夠在其內部都有一個切換?有任何想法嗎?我嘗試了谷歌搜索,但沒有運氣。

這就是我試圖讓與。對工作的代碼,因爲目前它不更改應用到所有元素兒子頁,(有#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"); 
    }); 
}); 
+1

的可能重複[使用jQuery .live與切換事件](http://stackoverflow.com/questions/2172614/using-jquery-live-with-toggle-event) – j08691

回答

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... 
    } 
}); 
+0

@maryisdead:謝謝!我沒有意識到(或者我認爲它被用作用戶定義的自定義事件)。 =) –

+1

不客氣!謝謝您的回答! :-) – maryisdead