我一直在寻找一种如何使用 javascript 单击 link_to 标记的方法,但它似乎对我不起作用。
我有一个如下所示的 link_to:
<%= link_to "", require_match_path(vacancy_id: vacancy.id, employee_id: current_employee.id), :id => vacancy.id %>
我尝试使用一些 JavaScript 来执行
onMatch: function (item) {
var myId = $("#matching > ul li:visible").last().attr("id");
alert(myId)
document.getElementById(myId).click();
alert('done')
},
该函数被调用(我收到警报),如果我在其中放置一些静态内容,例如 link_to 和 document.getElementById(1).click() 中的静态 id 1 ,它就会起作用;
但不知何故,当我尝试动态获取数据时,它似乎不起作用。我可以检查警报,它确实每次都能正确获取 id,但是当我通过它时,它什么也不做。
有人知道为什么吗?如果您动态获取 id,它会像字符串一样传递,我是否需要更改它,如果是这样,我该如何检查/修复这个问题?
简而言之:当我将静态数据放入其中时,我有一个可以正确执行 link_to 的函数。一旦我动态获取数据,它就不再起作用了。当我提醒我正在动态获取 ID 时,它确实给出了正确的数据。 (我的想法是它是以不可读的格式传递的,不知道我将如何从这里改变它。)
提前谢谢您。
最佳答案
使用 jQuery!
=link_to "my link", require_match_path(vars), id: "my_link"
然后在你的 jquery 中执行以下操作:
$("#my_link").click(function() {
// this is how to bind a click
event.preventDefault(); //for not following the link target
});
$("#my_link").click(); //call the click
关于javascript - 通过javascript点击link_to,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32973770/