Posted on 2008-11-04 18:27
leekiang 阅读(2725)
评论(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">