Перейти к определенной динамической ссылке по клику в таблице с конкретной ссылкой на данные ячейки - Jquery - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть HTML-таблица, как показано ниже

+-------+-------+-------+-------+-------+---------+---------+---------+---------+
| col1  | col2  | col3  | col4  | col5  | col6    | col7    | col8    | col9    |
+-------+-------+-------+-------+-------+---------+---------+---------+---------+
| data1 | data2 | data3 | data4 | data5 | button1 | button2 | button3 | button4 |
+-------+---------------+-------+-------+---------+---------+---------+---------+
| data6 | data7 | data8 | data9 | data0 | button1 | button2 | button3 | button4 |
+---------------+-------+-------+-------+---------+---------+---------+---------+

столбцы 6-9 содержат кнопки с соответствующими именами и идентификаторами, как показано.

То, что я хочу,

Когда пользователь нажимает только 1 в строке 1, страница должна перейти на URL www.example.com/sample.php?but1=data1, а когда пользователь нажимает только 1 в строке 2, страница должна перейти на URL www.example.com/sample.php?but1=data6.аналогично, кнопки 2, 3 и 4 должны перенаправить страницу на www.example.com/sample2.php?but1=data1, www.example.com/sample3.php?but1=data1, www.example.com/sample4.php?but1=data1 в строке 1 и www.example.com/sample2.php?but1=data6, www.example.com/sample3.php?but1=data6 и www.example.com/sample4.php?but1=data6 в строке 2.

Как я могу сделать это возможным с помощью jquery ??

Таблица содержит больше строк, чем показано здесь ..

Вот моя таблица

<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<table style="width: 100%" id="mytable" name="mytable">
    <tr>
        <td>col1</td>
        <td>col2</td>
        <td>col3</td>
        <td>col4</td>
        <td>col5</td>
        <td>col6</td>
        <td>col7</td>
        <td>col8</td>
        <td>col9</td>
    </tr>
    <tr>
        <td name="datacol" id="datacol">data1</td>
        <td>data2</td>
        <td>data3</td>
        <td>data4</td>
        <td>data5</td>
        <td id="data1" class="button1" name="button1" style="cursor:pointer">button1</td>
        <td id="data1" class="button2" name="button2" style="cursor:pointer">button2</td>
        <td id="data1" class="button3" name="button3" style="cursor:pointer">button3</td>
        <td id="data1" class="button4" name="button4" style="cursor:pointer">button4</td>
    </tr>
    <tr>
        <td name="datacol" id="datacol">data6</td>
        <td>data7</td>
        <td>data8</td>
        <td>data9</td>
        <td>data10</td>
        <td id="data6" class="button1" name="button1" style="cursor:pointer">button1</td>
        <td id="data6" class="button2" name="button2" style="cursor:pointer">button2</td>
        <td id="data6" class="button3" name="button3" style="cursor:pointer">button3</td>
        <td id="data6" class="button4" name="button4" style="cursor:pointer">button4</td>
    </tr>
</table>

ячейки кнопок - это модифицированные элементы таблицы с указателем курсора;)

распределение URL должно быть таким:

первый ряд
button1: www.example.com/1111.php?aa=data1
button2: www.example2.com/2222.php?bb=data1
button3: www.example3.com/3333.php?cc=data1
button4: www.example4.com/4444.php?dd=data1

второй ряд
button1: www.example.com/1111.php?aa=data6
button2: www.example2.com/2222.php?bb=data6
button3: www.example3.com/3333.php?cc=data6
button4: www.example4.com/4444.php?dd=data6

Мне нужен такой код;

    <script type="text/javascript">
    $(function() {
        $('.button1').click(function() {
   document.location.href='the_link_to_go_to.html';  
        });
        $('.button2').click(function() {
   document.location.href='the_link_to_go_to.html';    
        });
        $('.button3').click(function() {
   document.location.href='the_link_to_go_to.html';     
        });
        $('.button4').click(function() {
   document.location.href='the_link_to_go_to.html';     
        });
    });
    </script>

Заранее спасибо ..:)

blasteralfred

Ответы [ 3 ]

1 голос
/ 02 февраля 2011

вы можете сделать это так:

  1. Назовите ваш идентификатор клетки в соответствии с их столбцом / строкой как <td id="myTable1-3">...</td>
  2. использовать обработчик делегата на столе
  3. получить номер строки и столбца из идентификатора ячейки
  4. перенаправлять

Код:

 $('#yourtable').delegate( "td", "click", function() {

        var id = $(this).attr( "id" );

        // There're far better ways to get those number with regex or whatever
        var pos = id.split('myTable')[1]; 
        var col = parseInt( pos.split('-')[0] );
        var row = parseInt( pos.split('-')[1] );

        // Now you have the col and row numbers of the clicked cell, 
        // you can generate your url and open it as needed

    } );
1 голос
/ 02 февраля 2011

поместите это в файл javaScript

$(function () {
    $("#myUniqueTable input[type=button]").click(function () {
         tdValue= $(this).parents('tr').find('td').eq(0).text() ;
         columnIndex = $(this).parents('tr').find('td').index(this)
         url= 'www.example.com/sample'+columnIndex +'.php?but1='+tdValue    
        $(location).attr('href',url);
    }
});
0 голосов
/ 09 февраля 2011

Наконец я решил это .. Прежде всего, я благодарю Vivek, Prescott, JustcallmeDrago, BiAiB и Gordon ... :) Спасибо, парень ...

Я сделал это через

<script type="text/javascript">
$(function() {
    $('.button1').click(function() {
   window.location = "www.example.com/1111.php?aa=" + this.id;
    });
    $('.button2').click(function() {
   window.location = "www.example2.com/2222.php?bb=" + this.id;
    });
    $('.button3').click(function() {
   window.location = "www.example3.com/3333.php?cc=" + this.id;
    });
    $('.button4').click(function() {
   window.location = "www.example4.com/4444.php?dd=" + this.id;
    });
});
</script>
...