2012-10-04 77 views
1

我正在使用Primefaces计划组件在我的Web应用程序中呈现事件。但我需要跟他做一个小动作。对于每个呈现的事件,我需要显示带有事件详细信息的工具提示。使用window.onload监听器和一些jquery函数很容易显示当前日期框架的工具提示。但是,由于时间表使用ajax来显示下一个日期框架,当我按下next和prev按钮时,工具提示崩溃。我试过使用:自定义事件外观primefaces计划

window.addEventListener('DOMSubtreeModified', function(){ 
    // create bubble popups 
    $('.fc-event-inner.fc-event-skin').CreateBubblePopup(options); 
}, false); 

但似乎它需要太多的处理和页面变慢。还有其他一些方法可以将工具提示添加到每个呈现的事件中?

+0

你不使用jquery'委托或'on'吗?绑定这些工具提示?类似于'$(document).delegate(“.fc-event-inner.fc-event-skin”,“hover”,function(event){if(event.type ==='mouseenter'){$(' .fc-event-inner.fc-event-skin')。CreateBubblePopup(options);}});' – Daniel

+0

@Daniel谢谢你!但是当鼠标离开div时,'hover'事件就会触发。我改为'鼠标悬停'事件,但这不会触发。当鼠标悬停在div上时,我需要工具提示。 –

+0

它应该输入两次,一次用于'mouseenter',另一次用于'mouseleave'只尝试'.fc-event-inner'或者只输入'.fc-event-skin''$(document).delegate(“.fc-事件 - 内部“,”悬停“,功能(事件)if(event.type ==='mouseenter'){(fc-event-inner.fc-event-skin')。 CreateBubblePopup(选项); \t} \t其他{// 隐藏 \t} });' – Daniel

回答

3

试试这样说:

$(window).load(function() { 
    $(document).delegate(".fc-event-inner", "mouseenter mouseover", function(event){ 
     $('.fc-event-inner.fc-event-skin').CreateBubblePopup(options); 

    }); 
}); 

更新

我有这种感觉,在调度js文件的地方,他们在mouseoverstopPropagation() ...

外观在位于primefaces-3.4.1的ther js文件的以下代码片段-sources \ META-INF \资源\ primefaces \时间表

/* Event Element Binding 
-----------------------------------------------------------------------------*/ 


function lazySegBind(container, segs, bindHandlers) { 
    container.unbind('mouseover').mouseover(function(ev) { 
     var parent=ev.target, e, 
      i, seg; 
     while (parent != this) { 
      e = parent; 
      parent = parent.parentNode; 
     } 
     if ((i = e._fci) !== undefined) { 
      e._fci = undefined; 
      seg = segs[i]; 
      bindHandlers(seg.event, seg.element, seg); 
      $(ev.target).trigger(ev); 
     } 
     ev.stopPropagation(); 
    }); 
} 

所以...

尝试删除ev.stopPropagation();

顺便说一句,知道的调度器实际上是一个FullCalendar jQuery plugin ,所以你可能会发现一些有用的信息,如果你谷歌fullcalendar工具提示

这里是t他链接修改的Primefacess 3.4 jar(没有stopPropagation调度程序事件)

+0

哦,天啊!这仅仅是行不通的!我已经在Chrome和Safari中进行了测试,但它无法正常工作。但是'click'事件起作用! –

+0

呵呵,谢谢!但我怎样才能编辑日程安排js文件?可以编辑primefaces jar内的资源吗? –

+0

只需从源zip中提取它,修改它并将其放入你的curent jar(使用rar或7zip),你可以添加'console.log(“test”)'来查看新文件是否是正在使用的文件(ctrl + f5刷新它...) – Daniel