$("#main_contents").find("div:eq(0)").css("display")
で返ってくるのは文字列なので、cssメソッドのあとにonメソッドをつなげても find で取得した要素の display が変わったことを検出はできないです
属性の変更を監視するなら MutationObserver
を使うのはどうでしょうか
javascript
1var elem = $("#main_contents").find("div:eq(0)").get(0)
2var pre_display = $(elem).css("display")
3var mo = new MutationObserver(function(mutations){
4 var display = $(mutations[0].target).css("display")
5 if(pre_display !== display){
6 pre_display = display
7 // なにかする
8 }
9})
10mo.observe(elem, {
11 attributes: true,
12 attributeOldValue: true,
13 attributeFilter: ['style']
14})
style属性の変更があると関数が実行されるので、前のdisplayと変わっていた時にだけ何かするという処理です