鼠标滚轮的一些用法
鼠标滚轮大家平时都很常用,但是FR本身用滚轮的操作很少,其实有些操作加点滚轮效果还是非常好的,比如文本框和日期控件。今天就给大家介绍下该如何做能实现。
1.控件在参数面板的情况
在参数面板比较好办,结构比填报页面简单多了,大家只需要在加载结束事件写入以下JS就可以实现。
文本框控件如下
$('input').bind('mousewheel', function(event) {
if(event.originalEvent.wheelDelta>0)
{
var k=contentPane.parameterEl.getWidgetByName("mm").getValue();
var kk=parseInt(k)+1;
contentPane.parameterEl.getWidgetByName("mm").setValue(kk);
}
else
{
var k=contentPane.parameterEl.getWidgetByName("mm").getValue();
var kk=parseInt(k)-1;
contentPane.parameterEl.getWidgetByName("mm").setValue(kk);
}
});
下面是日期控件的js
function addDate(date, days) {
if (days == undefined || days == '') {
days = 1;
}
var date = new Date(date);
date.setDate(date.getDate() + days);
var month = date.getMonth() + 1;
var day = date.getDate();
return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
}//加减日期的一个函数,参数为日期和天数,可以为负,这里可以用FR内置函数。
function getFormatDate(arg) {
if (arg == undefined || arg == '') {
return '';
}
var re = arg + '';
if (re.length < 2) {
re = '0' + re;
}
return re;
}//为上面的日期函数服务
$('div>div>input').bind('mousewheel', function(event) {
if(event.originalEvent.wheelDelta>0)
{
var k=contentPane.parameterEl.getWidgetByName("U").getValue();
//var kk=parseInt(k)+1;
var kk=addDate(k);
contentPane.parameterEl.getWidgetByName("U").setValue(kk);
}
else
{
var k=contentPane.parameterEl.getWidgetByName("U").getValue();
//var kk=parseInt(k)-1;
var kk=addDate(k,-1);
contentPane.parameterEl.getWidgetByName("U").setValue(kk);
}
});
注意一点,里面的input这里填写你的控件名,下面的getWidgetByName("U").这里的U也填你的控件名!上面的参数控件实现的是加1的操作,下面的日期控件是实现的多一天少一天的操作,如果要修改,为多天,addDate(k,-1),将-1改为你想要的,比如。3,-3.还有,必须 要有初始值。
2.控件不在参数面板
注意,这种情况,必须是直接显示控件才有效,如果不直接显示控件只有文本框可以写在编辑前事件。日期控件要实现的话比较复杂,这里没有给出这种做法,如果有特别需要可以回帖。
与前面的JS类似有小差别。文本框的如下:
$('input').bind('mousewheel', function(event) {
if(event.originalEvent.wheelDelta>0)
{
var k=contentPane.curLGP.getCellValue("B4");
var kk=parseInt(k)+1;
contentPane.setCellValue("B4",null,kk);
}
else
{
var k=contentPane.curLGP.getCellValue("B4");
var kk=parseInt(k)-1;
contentPane.setCellValue("B4",null,kk);
} 这里K是控件名,B4是单元格。注意不要填混了!
下面是日期控件的
function addDate(date, days) {
if (days == undefined || days == '') {
days = 1;
}
var date = new Date(date);
date.setDate(date.getDate() + days);
var month = date.getMonth() + 1;
var day = date.getDate();
return date.getFullYear() + '-' + getFormatDate(month) + '-' + getFormatDate(day);
}
function getFormatDate(arg) {
if (arg == undefined || arg == '') {
return '';
}
var re = arg + '';
if (re.length < 2) {
re = '0' + re;
}
return re;
}//日期计算函数,同上面一样
$('div>div>input').bind('mousewheel', function(event) {
if(event.originalEvent.wheelDelta>0)
{
var k=contentPane.curLGP.getCellValue("D4");
//var kk=parseInt(k)+1;
var kk=addDate(k);
contentPane.setCellValue("D4",null,kk);
}
else
{
var k=contentPane.curLGP.getCellValue("D4");
//var kk=parseInt(k)-1;
var kk=addDate(k,-1);
contentPane.setCellValue("D4",null,kk);
}
}); 这里同样,KK是控件名,D4是单元格。还有如果你是写到加载结束事件,那么前面的日期计算函数可以不用再写一次。同样必须要有初始值。
不在参数面板还有一点很关键,当操作对象是日期控件的时候,日期控件不能是第一个被操作的对象,否则可能不生效,如果遇到不生效的情况,那么就是你第一个点的是日期控件,这个bug和FR的本身数据类型有关,解决的话,有点麻烦。
介于上面可能有同学理解的不是很清楚,这里 有模版。
93332 编辑于 2018-1-23 16:24