如何预防每个对象?只有第一个工作



我难以防止每个事件对象的默认操作。每个事件都应显示一个具有" Ajax-event"类ID的链接。并具有该ID的链接应已执行DestractDefault()。

这是我的event.js文件中的代码

function listenForEvent() {
 $('#ajax-event').on('click', function(event) {
  console.log('you just hit event')
  event.preventDefault()
 });
};

这是我的事件中的迭代#index.html文件:

<tr><!--this will list the details of the column name-->
  <% @events.each do |event| %>
    <% if event.event_guests.any? {|guest| !guest.rsvp }%>
      <td><%= link_to "#{event.name}", user_event_path(@user, event), id: "ajax-event", class: "ajax-event"  %></td>
      <td><%= event.location %></td>
      <td><%= event.date.strftime("%b %d, %Y") %></td>
      <td><%= link_to "Edit", edit_user_event_path(@user, event) %></td>
      <td><%= link_to "Delete", user_event_path(@user, event), method: :delete %></td>
</tr>
    <% end %>
  <% end %>

此预防违规()操作仅在第一个事件对象上起作用。任何帮助!

单个文档中具有相同ID的多个元素是无效的HTML-当您选择$('#ajax-event')时,JQuery仅查看具有ajax-event ID的第一个元素。删除重复ID(我在这里根本看不到任何ID的需要),然后使用您的(已经存在的)ajax-event类:

function listenForEvent() {
  $('.ajax-event').on('click', function(event) {
    console.log('you just hit event')
    event.preventDefault()
  });
}

最新更新