嵌套的跨度没有拾取onClick

时间:2016-03-11 21:17:41

标签: javascript php jquery

我在另一个没有拿到jQuery的范围内有一个嵌套的SPAN - 我想找到一种方法来完成这项工作,并找出它为什么不起作用。

基本上,我有一个span,实际上是一个popover(bootstrap) 这意味着要确认删除记录。

以下是我所拥有的:

                <span 
                class="glyphicon glyphicon-remove" 
                data-placement="top" 
                data-toggle="popover" 
                style="cursor:pointer" 
                title="Confirm" 
                data-content="<center><span style='cursor:pointer' id='deleteRecordSpan' class='remove glyphicon glyphicon-remove'><p style='display:none'><?=$row['uniqueID'];?></p></span></center>"
                ></span>

数据内容中的SPAN被认为是第二个按钮(实际上挂钩到jQuery以执行我的ajax命令的按钮) - 按钮显示并且具有与之关联的正确信息,但是当单击时,它永远不会触发jQuery事件(根据firebug)

我的js:

<script>
        $(document).ready(function() {
           $('.remove').click(function() {
                var input = input = $(this).text()
                $.ajax({ // create an AJAX call...
                    data: {
                        uniqueid: input,
                    },
                    type: 'POST', // GET or POST from the form
                    url: './ajax/deleteRecord.php', // the file to call from the form
                    success: function(response) { // on success..
                       show10();
                       allToday();
                   }
               });
            });
        });
        </script>

2 个答案:

答案 0 :(得分:2)

由于HTML位于data-content属性中,Bootstrap会动态插入标记,您需要一个委托的事件处理程序

$(document).ready(function() {
   $(document).on('click', '.remove', function() {
        var input = $(this).text()
        $.ajax({
            data: {
                uniqueid: input,
            },
            type: 'POST',
            url: './ajax/deleteRecord.php', form
            success: function(response) {
               show10();
               allToday();
            }
        });
    });
});

答案 1 :(得分:0)

您的问题在于span标记内的<p>标记。尝试将uniqueId作为span标记的数据属性,如下所示:

<center><span style='cursor:pointer' id='deleteRecordSpan' class='remove glyphicon glyphicon-remove' data-unique='<?=$row['uniqueID'];?>'></span></center>

然后您的唯一ID将不会显示。你可以用这种方式使用你的id:

var input = $(this).data('unique');