拖动带有 url 的事件始终跟在放置后的 url 后面



我在拖动带有 url 的事件时遇到了一些麻烦。

如果您尝试这样做,您将看到事件正确移动,但点击事件也被触发,因此您将访问链接的 URL(这很糟糕)。

我尝试使用eventClick回调,但没有运气。
在这里你可以找到我的代码:

// calendar setup
eventDragStart : function(event, jsEvent, ui, view){
    event.dragging = true;
},
eventDragStop : function(event, jsEvent, ui, view){
    event.dragging = false;
},
eventClick : function(event, jsEvent, view){
    //even if I try to return always false, the link is still active
    if(event.dragging === true) return false;
},

然后我尝试操作事件链接:

eventRender : function(event, element, view){
    $('a').click(function(){
    // custom function that checks if the event is being dragged or not
    //return dragCheck(event);
    return false;
    });
},

但仍然没有运气。我认为在拖动时会创建一个新元素,因此每个自定义值都会被清除......

有什么想法吗?

- 医生,当我打我的肚子时,我感觉很糟糕
- 所以,不要打它!

我按照之前的座右铭找到了解决方案。
我没有使用原始的url属性,而是创建了另一个custom_url
这将阻止完整日历创建a元素,因此问题就消失了。

在这里你可以找到我的代码。

用于获取事件的服务器端代码:

foreach($this->items as $row)
{
    $event = array();
    $event['id']         = $row->id_calendars;
    $event['title']      = $row->cal_title;
    $event['start']      = $row->cal_start;
    $event['end']        = $row->cal_end;
    $event['allDay']     = (bool) $row->cal_all_day;
    $event['custom_url'] = $row->url;
    $events[] = $event;
}
echo json_encode($events);

然后是javascript部分:

eventDragStart : function(event, jsEvent, ui, view){
      event.dragging = true;
},
eventDragStop : function(event, jsEvent, ui, view){
      event.dragging = false;
},
eventClick : function(event, jsEvent, view){
      if(event.dragging === true) return false;
      if(event.custom_url){
            window.location = event.custom_url;
      }
},

大功告成!

相关内容

  • 没有找到相关文章

最新更新