-2

クリック イベントを動作させることができません。<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>
4

5 に答える 5

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() {

});
于 2013-03-28T17:03:29.517 に答える
1

これを試して

$('#tableID td input').click(function() {
....

またはを使用して入力をテーブルに委任しますon

$('#yourTableID').on('click', 'input', function() {

はい...いつものように...IDは常に一意でなければなりません...うまくいくかもしれませんが、後で問題が発生する可能性があります

于 2013-03-28T17:04:34.303 に答える
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){
于 2013-03-28T17:05:13.073 に答える
0

イベント委任を使用します。

$('#tableid').on('click', 'input', function() {

#tableid子の入力クリックをリッスンするテーブルの ID である必要があります。

于 2013-03-28T17:04:54.620 に答える
0

$(#id_of_your_table tr td 入力).click(関数....)

于 2013-03-28T17:05:48.187 に答える