我无法让我的点击事件表现出来。我需要从每个表行中的每个<input>
触发它 - 仅在此表中,而不是在页面上其他地方的<input>
中(在代码段中未显示)。
$('input').click(function() {
然而,它会触发我页面上其他地方的<input>
(未在摘要中看到)。
所以我尝试用id指定它。
$('#File_Number').click(function() {
但这仅适用于第一个表格行,仅适用于第一个<input>
。
每个表行都是从MySQL生成的。因此,id="file_number"
出现了很多次。
以下是正常运作的源代码:http://jtjohnston.net/clickeventtest/database.php
理想情况下,我希望点击事件从每个存在于每一行的id中触发。
id="File_Number"
id="File_DateTime"
id="Address"
id="File_Comments"
<tr id="2013-0469">
<td id=""><input id="File_Number" value="2013-0455" type="readonly" size="7"></td>
<td id=""><input id="File_DateTime" value="2013-03-16 03:08:12" type="readonly" size="18"></td>
<td id=""><input id="Address" value="123 Sesame Street" type="readonly" size="20"></td>
<td id=""><input id="File_Comments" value="Something said done entered" type="readonly" size="30"></td>
</tr>
<tr id="2013-0570">
<td id=""><input id="File_Number" value="2013-0965" type="readonly" size="7"></td>
<td id=""><input id="File_DateTime" value="2013-03-17 02:08:14" type="readonly" size="18"></td>
<td id=""><input id="Address" value="123 Baker Street" type="readonly" size="20"></td>
<td id=""><input id="File_Comments" value="Something said done entered" type="readonly" size="30"></td>
</tr>
<script type='text/javascript'>
//$.removeCookie("test");
//$('input').click(function() {
$('#File_Number').click(function() {
var id = $(this).parents('tr').attr('id');
alert(id);
// $.cookie("Row_Id", id, { expires : 10});
window.open("something.php","_new");
});
</script>
答案 0 :(得分:2)
ID的需要是唯一的,将所有输入ID替换为类,然后通过定位类来相应地调整jQuery,例如
$('.File_Number').click(function() {
var id = $(this).parents('tr').attr('id');
alert(id);
// $.cookie("Row_Id", id, { expires : 10});
window.open("something.php","_new");
});
请务必在表格中添加ID (如果您在该页面上使用多个表格)。
然后您可以像这样定位它:
$('#tableID').on('click', 'input', function() {
});
答案 1 :(得分:1)
试试这个
$('#tableID td input').click(function() {
....
或使用on
$('#yourTableID').on('click', 'input', function() {
并且是的...一如既往...... ID应该始终是唯一的...它可能会起作用,但可能会让您遇到麻烦
答案 2 :(得分:1)
每个ID在页面中应该是唯一的,因此您需要使用类似
的类替换输入ID<tr id="2013-0469">
<td id=""><input class="File_Number" value="2013-0455" type="readonly" size="7"></td>
<td id=""><input class="File_DateTime" value="2013-03-16 03:08:12" type="readonly" size="18"></td>
<td id=""><input class="Address" value="123 Sesame Street" type="readonly" size="20"></td>
<td id=""><input class="File_Comments" value="Something said done entered" type="readonly" size="30"></td>
</tr>
JS
$('table').on('click', 'input', function(e){
var id = $(this).parents('tr').attr('id');
alert(id);
// $.cookie("Row_Id", id, { expires : 10});
window.open("something.php","_new");
})
还要向表中添加id属性,以便您可以轻松识别
<table id="my-table">
<tr>
<td>.....
然后将脚本更改为
$('#my-table').on('click', 'input', function(e){
答案 3 :(得分:0)
使用事件委托:
$('#tableid').on('click', 'input', function() {
#tableid
必须是您希望收听其子输入点击的表格的ID。
答案 4 :(得分:0)
$(#id_of_your_table tr td input).click(function ....)