我正在尝试使用Jquery从HTML DOM中获取标识数据,但是当我第一次按下按钮时,这会完成两次,然后增加到3,依此类推......我读到这是因为Jquery我得到了所有的数据识别,但他尝试了几件事情,没有人给我结果。
<script>
function hi(text){
$(document).ready(function() {
$('button').on('click', function() {
console.log(this.dataset.id, $(this).data().id,
$(this).data('id'));
alert("It is done many times ...");
});
});
}
</script>
和php:
$i = 0;
foreach($arr as $data ){
$iterator = new RecursiveIteratorIterator(new
RecursiveArrayIterator($data), RecursiveIteratorIterator::SELF_FIRST);
$find_variables = (iterator_to_array($iterator,true));
foreach($find_variables as $rec){
if (is_array($rec)) {
if (!empty($rec) && ($rec['text'] != '') ) {
$manjar = json_encode($rec);
$manj1 = htmlspecialchars($manjar , ENT_QUOTES);
echo '</a></td><div id="my-div3"><td><button class="btn btn-danger" type="button" data-id="'.$i .'" onclick= "hi(' . $manj1 . ')">Info</a></td></tr>';
$i++;
}else{
continue;
}
}
}
}
总结:我第一次按下按钮,我收到两个警报,我关闭它,再次按下按钮,然后三个警报出来。我关闭它们,我再次按下按钮,然后四个......等等......我很感激你的帮助,我一直在审查,但没有任何作用......
答案 0 :(得分:0)
您正在使用两个事件侦听器...一个是内联onclick
,在函数hi()
内部,您使用jQuery添加另一个事件侦听器。
每次在hi()
中调用onclick
时,您都会再次添加另一个侦听器
删除内联onclick
并删除函数hi()
并使用jQuery on('click'..
使用其他数据属性传入$manj1