Jquery加载多个警报

时间:2018-05-20 02:35:04

标签: javascript php jquery

我正在尝试使用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;

              }

            }
          }


    }

总结:我第一次按下按钮,我收到两个警报,我关闭它,再次按下按钮,然后三个警报出来。我关闭它们,我再次按下按钮,然后四个......等等......我很感激你的帮助,我一直在审查,但没有任何作用......

1 个答案:

答案 0 :(得分:0)

您正在使用两个事件侦听器...一个是内联onclick,在函数hi()内部,您使用jQuery添加另一个事件侦听器。

每次在hi()中调用onclick时,您都会再次添加另一个侦听器

删除内联onclick并删除函数hi()并使用jQuery on('click'..

使用其他数据属性传入$manj1