問題を説明するのは難しいですが、うまくいけばわかります。クリックイベントは、jqueryデータセットと組み合わせたときに最初のページでのみ機能し、他のページは機能しません。
このプラグインページネーションを使用してjqueryデータ型で表示されるデータが1000個増えました。これは自動的に作成されます。すべての行で、データの各行に使用できるようにCSSクラスを追加します。このCSSクラスを通して、私はJavaScriptのアクションをダイアログとして呼び出すことができます。問題は、最初のページでうまくいっていますが、javascriptアクションにアクセスできない最後のページの2番目のページでは、ダイアログは表示されません。console.logに問題がないことを示していません。
これは私のコードです:
HTML
<div id="dialog" title="Select one"></div>
PHP
がforeach ($datafromDb as $data) {
$datakey = '{"dataCode":"'.$data['dataCode'].'"}';
echo "<td><a href='#' class='cssClass' data-key='" . $datakey . "'>Click</a></td>";
}
Javascriptを
$(document).ready(function() {
// implement jquery dataTables
$('#table').DataTable({
bAutoWidth: false,
stateSave: true
});
// this action executed when cssClass accessed
$(".cssClass").click(function() {
var self = this;
$("#dialog").dialog({
resizable: false,
show: {
effect: "bounce",
duration: 500
},
hide: {
effect: "explode",
duration: 500
},
height: 100,
modal: true,
buttons: {
"Button 1": function() {
var data = $(self).data('key');
window.open("http://www.example.com/" + "firstRoute" + "/" + data.dataCode, "_blank");
},
"Button 2": function() {
var data = $(self).data('key');
window.open("http://www.example.com/" + "secondRoute" + "/" + data.dataCode, "_blank");
}
}
});
});
}
ありがとうございました、私はついに道を見つけました。隠しカラムを作成することで、ID /コードを格納するために使用できるので、ユーザには表示されません。この非表示の列は、[例](https://datatables.net/examples/advanced_init/events_live.html)に従ってアクセスできます。 アイコンにCSSクラスを添付します。クリックすると、すべての行が直接読み取られるのではなく、CSSクラスでフィルタリングされます。行は、CSSクラスにアクセスするときに読み込まれます。 –