У меня есть небольшая таблица 3x4, как показано в этом JSFiddle.
Щелчок по изображению дает предупреждение, в котором в основном есть все данные строки изображения, которое было нажато.
Однако он не работает ни в одном браузере (в Chrome 31.0.1650.63 m, IE 10 и Firefox 25.0.1). Мой код показан ниже. "JQuery-1.9.1.js" на самом деле это присутствует в той же папке, что и файл PHP. Любая подсказка, почему она не работает за пределами JSFiddle? Кроме того, будет ли он работать, если я получаю данные из базы данных Oracle, используя while($row = oci_fetch_array($result, OCI_ASSOC+OCI_RETURN_LOBS))
?
<html>
<head>
<script src="jquery-1.9.1.js">
$("img.print").click(function (event) {
//Prevent the hyperlink to perform default behavior
event.preventDefault();
var $td = $(this).parent().closest('tr').children('td');
var string1 = $td.eq(0).text();
var string2 = $td.eq(1).text();
var string3 = $td.eq(2).text();
alert(string1+' '+string2+' '+string3);
});
</script>
</head>
<body>
PHP-код
<?php
echo '
<table border="1">
<tr>
<td>Data 1</td>
<td>Data 2</td>
<td>Data 3</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
<tr>
<td>Data 4</td>
<td>Data 5</td>
<td>Data 6</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
<tr>
<td>Data 7</td>
<td>Data 8</td>
<td>Data 9</td>
<td><img src="https://www.gravatar.com/avatar/12e4484b5ae3e5f676efb7c18cbac643?s=24&d=identicon&r=PG" class="print"></img></td>
</tr>
</table>
';
?>
</body>
</html>
Ваш код не работает, потому что DOM еще не создан во время вашего кода.
Вы должны либо поместить свои теги script
перед закрывающим тегом body
(что является хорошей практикой), либо только запустить ваш код, когда DOM готов:
$(document).ready(function() {
$("img.print").click(function (event) {
//Prevent the hyperlink to perform default behavior
event.preventDefault();
var $td = $(this).parent().closest('tr').children('td');
var string1 = $td.eq(0).text();
var string2 = $td.eq(1).text();
var string3 = $td.eq(2).text();
alert(string1+' '+string2+' '+string3);
});
});
Кроме того, то, как вы включаете jQuery, неверно. Тег script
с src
не должен содержать контент. Поэтому вам нужны два script
:
<script src="jquery-1.9.1.js"></script>
<script>
$("img.print").click(function (event) {
//...
});
</script>
Еще одно замечание: никогда не забудьте указать DOCTYPE, это очень важно!
<!DOCTYPE html>
<html>
...