вызвать функцию javascript из haml link_to

Я хотел бы вызвать функцию javascript (без JQuery), когда onclick даже срабатывает из тега link_to в haml. Как я могу это сделать?


person Sandah Aung    schedule 28.10.2012    source источник


Ответы (4)


Я думаю, что это может сработать:

link_to "your link", href, :onclick => "jsFunction"

Или, делая все на стороне JS:

document.body.addEventListener('click',function(e)
{
    var target = e.target || e.srcElement;
    if (target.tagName.toLowerCase() !== 'a')
    {
        return e;//not clicked on link
    }
    //a link was clicked, maybe check class or id or other stuff to narrow it down
    //if a link you were interested in was clicked:
    return theClickFunction.apply(target,[e]);
},false);
person Elias Van Ootegem    schedule 28.10.2012
comment
Я не могу вызвать функцию coffeescript по этой ссылке. Он работает только тогда, когда я добавляю () в функцию - person Iurii Vasylenko; 16.10.2015

Вот как это сделать с помощью Rails link_to в haml:

= link_to "my link", "", :onclick => "my_function(); return false"
person edouardbriere    schedule 28.10.2012
comment
Этот ответ был более полезным. - person rcd; 24.09.2013
comment
@YuraVasylenko (); выполняет функцию. my_function без is Эй, я функция... с (); Эй, я функция, выполни меня. Вы можете передать my_function в качестве параметра (передать всю функцию), если вы передадите my_function(); вы передаете результат выполнения функции - person slindsey3000; 17.06.2016

Чистый HAML-эквивалент ответа @edouardbriere:

%a{href: '#', onclick: 'my_function(); return false;'} my link
person Felix Livni    schedule 13.08.2014

<a onclick="YOURMETHOD;"/>A link</a>

если вы также хотите предотвратить изменение местоположения, добавьте return false после вызова метода.

person AMember    schedule 28.10.2012
comment
Первоначальный вопрос касался ссылок HAML; не HTML, в данном случае. - person rcd; 24.09.2013