Mam mały problem z jQuery, w widoku mam generowane dwa linki do głosowania (ajax). W przypadku gdy użytkownik nie ma praw do głosowania rzucany jest wyjątek CanCan::AccessDenied, który obsługiwany jest na razie w ten sposób, że renreduję partial, z wyskakującym alertem: alert(‘test’). Wszystko działa tak jak powinno, czyli użytkownik niezalogowany klika link głosowania i wyskakuje mu okienko ‘test’.
No i tutaj zaczyna się mój problem, bo chciałbym ten alert (w przyszłości jakiś div z prośbą o zalogowani) wyświetlić w miejscu gdzie został kliknięty link.
Nie wiem za bardzo jak się do tych współrzędnych kursora myszy dobrać. Zrobiłem coś takiego:
[code=javascript]var pageX,pageY;
$(document).mousemove(function(e){
pageX=e.pageX;
pageY=e.pageY;
})
alert(pageX+","+pageY);[/code]
Problem jest taki, że za pierwszym razem jak klikam jako gość ten link dostaję alert ‘Undefined, Undefined’. Przy kolejnych kliknięciach dostaję już dobre współrzędne.
Tutaj po kolei:
- Widok w którym generuję linki do głosowania (+ i - ):
[code=ruby]<% if current_user.nil? || can?(:create, EntryVote.new(entry_id: entry.id)) %>
<%=link_to "+",entry_votes_path(id: entry.id, vote: "up"),method: :post,remote: true, class: "fleft" %> <%=link_to "-",entry_votes_path(id: entry.id, vote: "down"),method: :post,remote: true, class: "fright" %>
alert(pageX+","+pageY);[/code]