2012-04-03 59 views
0

我使用一個jQuery插件,自動調整大小來調整我的textarea沒能獲得

在插件我有這樣的事情目前專注元素..

(function($){ 
    $.fn.autoResize = function(options, idToBeShown) { 

    updateSize = function() { 
     //shows the content underneath the textbox with a slidedown effect  
    }, 

    resetSize = function(event) { 
     //Slide up and hide the contents underneath the textarea 
    }, 


    textarea 
    .unbind('.dynSiz') 
    .bind('keyup.dynSiz', updateSize) 
    .bind('keydown.dynSiz', updateSize) 
    .bind('focus',updateSize) //slide's down when focused 
    .bind('focusout',changeSize) //Slide up and hide the contents underneath the textarea 
    .bind('change.dynSiz', updateSize); 



    }); 

我的問題是,當我點擊textarea的下方區域textarea的不應該效果基本show而是 當我點擊在體內應該向上滑動的任何地方..

所以我做了這個..

resetSize = function(event) { 
//check the current focused element if it is the div area under text do do anything else slideup  
}, 

我不能讓當前的焦點內容,

1)document.activeElement返回身體

2)嘗試是( 「:焦點」);

3)( 「:激活」)

沒有什麼工作...注意我也有加入 '身份證' 的div元素..

回答

0

試試這個:

updateSize()

//process 
$('#divId').addClass('active'); 

resetSize()

if($('#divId').hasClass('active')){ 
    //process 
    $('#divId').removeClass('active'); 
} 
0
$(":input").focus(function() { 

    $(document).click(function(e) { 
     //resetSize; 
    }); 

}); 
+0

每次輸入焦點時,是不是將新的點擊處理程序綁定到文檔? – s4y 2012-04-03 14:14:36

+0

對不起 - 如此習慣做香草javascript - 我更新了點擊處理程序,因此它添加了點擊方法而不是替換。 – 2012-04-03 17:14:54