Делаем весь ряд кликабельным

0

Я пытался сделать целую строку моих таблиц на jsp-странице, доступной для нее, я написал следующий код на странице jsp:

<%@page import="java.sql.PreparedStatement"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.beans.Statement"%>
<%@page import="java.sql.Connection"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/clickablerow.js"></script>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>MY DATA</title>
</head>
<body>
<%!Connection con; %>
<%!PreparedStatement s; %>
<%!ResultSet rs; %>

<% String name=request.getParameter("q");
//out.println(name);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:SharedCryptography", "fyp", "fyp");

String groupidd = request.getSession().getAttribute("groupid").toString();

//out.println(groupidd);
/*String sql="select * from tbIndividual where I_NAME like ? "
        + "and I_ID in "
        + "(select I_ID from TBWAITINDIVIDUALS "
        + "where GROUP_ID <> '"+groupidd+"')";
*/
String sql="select * from tbIndividual where I_NAME like ?";




s = con.prepareStatement(sql);
s.setString(1, name + "%");
rs=s.executeQuery();
}
catch(Exception e){ 
e.printStackTrace(); 
}
%>

<div id="dtl_table"><table border='3' cellpadding='5' cellspacing='2' width="400px">
<tr bgcolor="66FF00">

<th>ID</th>
<th>NAME</th>
<th>FIRSTNAME</th>
<th>LASTNAME</th>
</tr>


<% while(rs.next())
{ %>
<%String storid=rs.getString(1);%>
<tr class="clickableRow" href="individualdetailstoadd.jsp?personid=<%=storid%>">
<td><%=storid%></td>
<td><%=rs.getString(2)%></td>
<td><%=rs.getString(4)%></td>
<td><%=rs.getString(5)%></td>
</tr>
<tr/>
<% } %>
</tr>
</table></div>

</body>
</html>

Включено

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/clickablerow.js"></script> 

наверху страницы и в clickablerow.js я написал:

jQuery(document).ready(function($) {
  $(".clickableRow").click(function() {
        window.document.location = $(this).attr("href");
  });
});

Я что-то делаю неправильно, потому что это не работает.

  • 0
    У вас есть открытая консоль разработчика вашего браузера? Если так, вы получаете ошибки? Там может быть много разных вещей не так. Код, как вы показываете, это правильно. Также покажите визуализированный HTML.
  • 0
    Вот демонстрация: jsfiddle.net/JUn34 Ваш код работает просто отлично.
Показать ещё 8 комментариев
Теги:
jsp

2 ответа

1

в первую очередь, вы можете уменьшить ваш готовый вызов jQuery:

$(function() {
}

его то же самое.

теперь, я думаю, вы хотели бы делегировать обработчик кликов, то есть вместо этого вы прикрепляете его к документу, поэтому документ будет искать доступную строку и обрабатывать события кликов:

$(function() {
  $(document).on("click",".clickableRow",function() {
        window.document.location = $(this).attr("href");
  });
});
  • 0
    Ваш вызов .ready() немного отличается тем, что вы используете глобальный $ без локальной ссылки, тогда как оригинал использует глобальный jQuery и определяет локальный $ всякий случай window.$ Перезаписывается.
  • 0
    @ Банана, я вас не понял. Вы говорите, чтобы заменить функцию js file этой функцией? А как насчет страницы jsp?
Показать ещё 13 комментариев
0

href является неправильным атрибутом для tr

Вы можете использовать концепцию data

Пример:

Префикс href с данными

<tr class="clickableRow" data-href="

Напишите JQuery, как показано ниже

$(".clickableRow").click(function() {
        window.document.location = $(this).data("href");
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню