Posted on 2008-11-04 18:27
leekiang 閱讀(2733)
評論(1) 編輯 收藏 所屬分類:
jquery(進去而已)
遇到一個需求,需要根據當前頁面的狀態動態設置定義在input上的my97日期控件的onfocus事件是否啟用。幾經周折,才搞定。
對于已經寫在input上的onfocus事件:
<input?type="text"?name="finishtime"?id="finishtime"??readonly="readonly"
?onfocus=WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd?HH:mm'})?class="Wdate">
我用jquery的unbind函數死活都解決不了。
最后只能用IE的detachEvent來解決,而用這個detachEvent又有兩個要注意的:
(1)detachEvent的事件必須是先前attachEvent的。
(2)函數不能帶參數,故用了個自定義的無參的my97dp函數來中轉。
真是搞不懂,又不能專門花時間來把js事件機制搞得很清楚。
代碼如下:
?<script>
?function?my97dp(){
?WdatePicker({skin:'whyGreen',dateFmt:'yyyy-MM-dd?HH:mm'});
?}
?jQuery(function(){
jQuery('#finishtime').get(0).attachEvent('onfocus',my97dp);
?var?status='${obj.status}';
?if(status=='2'||status=='3'){
?var?t=jQuery('#finishtime').addClass('readonly')
?.attr('readonly',true).removeClass('Wdate').get(0);
?t.detachEvent('onfocus',my97dp);
?}
?});
?</script>
?<input?type="text"?name="finishtime"?id="finishtime"?readonly="readonly"?class="Wdate">