2014-10-30 107 views
0

我正在使用JNotify-plugin在我的網站上顯示通知。我工作得很好,但我需要使用點擊功能來觸發某些事件。JQuery - JNotify - 點擊功能問題

Basiclly發生的事情是:

當我得到一個新的聊天消息我JNotify功能觸發,並通知-DIV顯示出來。然後當我點擊那個div時,我想觸發我的其他功能(#showNewMsg點擊功能)。但它不會工作。如果我使用其他div來觸發#showNewMsg-click-function,那麼一切正常。但是當點擊JNotify呈現的div時不行。那麼如何才能做到這一點?

這裏是我的嘗試......

JNotify-功用:

var newMessage; 
     $(function() { 
      newMessage = function() { 
       jSuccess(
        "<div id='showNewMsg'><i class='glyphicon glyphicon-envelope'></i>" + ' New chat msg! Click to read!' + '</div>', 
        { 
         autoHide: false, 
         HideTimeEffect: 500, 
         LongTrip: 20, 
         ColorOverlay: '#000', 
         HorizontalPosition: "center", 
         VerticalPosition: "bottom", 
         ShowOverlay: false, 
         OpacityOverlay: 0.5, 
         MinWidth: 350 
        }); 
      } 
      newMessage(); 
     }); 

點擊-funtion引發一些其他的單擊事件:

$("#showNewMsg").click(function() { 

     $("#chat-toggle").click(); 

     $('a[href="#room1"]').click(); 
    }); 

JNotify GitHub

回答

0

回答我自己的問題,以防其他人想知道。

通過閱讀更近一點的JNotify文檔,找到了答案。

通過添加onClosed-part,而不是試圖用click事件做一個單獨的函數,現在一切正常。

on通知div關閉時發生火災。

var newMessage; 
     $(function() { 
      newMessage = function() { 
       jSuccess(
        "<div id='showNewMsg'><i class='glyphicon glyphicon-envelope'></i>" + ' New chat msg! Click to read!' + '</div>', 
        { 
         autoHide: false, 
         HideTimeEffect: 500, 
         LongTrip: 20, 
         ColorOverlay: '#000', 
         HorizontalPosition: "center", 
         VerticalPosition: "bottom", 
         ShowOverlay: false, 
         OpacityOverlay: 0.5, 
         MinWidth: 350, 
         //THIS PART BELOW 
         onClosed: function() { 
          $("#chat-toggle").click(); 

          $('a[href="#room1"]').click(); 
         }, 
        }); 
      } 
      newMessage(); 
     }); 
0

由於通知DIV正在被動態地插入到DOM中,所以它永遠不會被綁定到您設置的那個單擊。嘗試在jNotify的onCompleted函數中綁定點擊。這個函數在元素插入後觸發,所以你應該可以對它進行操作。

jSuccess(
    "<div id='showNewMsg'><i class='glyphicon glyphicon-envelope'></i>" + ' New chat msg! Click to read!' + '</div>', 
    { 
    autoHide: false, 
    HideTimeEffect: 500, 
    LongTrip: 20, 
    ColorOverlay: '#000', 
    HorizontalPosition: "center", 
    VerticalPosition: "bottom", 
    ShowOverlay: false, 
    OpacityOverlay: 0.5, 
    MinWidth: 350, 
    onCompleted : function() { 
     $("#showNewMsg").click(function() { 
     alert('You clicked on the notification!'); 
     }); 
    } 
    } 
); 

jsFiddle here.