我的javascript函数
function ConfirmDelete()
{
if (confirm("Delete Account?"))
var id= $(this).attr('data-id');
alert(id);
location.href='config-project-delete.php?id='+id;
}
onclick事件触发器
<?php
echo "<span onclick=\"ConfirmDelete()\" data-id={$row['project_id']} class='button-content'>
<i class='glyph-icon icon-trash-o float-left'></i>
Delete
</span>
</div>
</a>
</li>"; ?>
我无法获取data-id.It一直在说undefined。非常感谢。
答案 0 :(得分:1)
在您的示例中,this
并未引用您调用该函数的元素,而是引用该函数的所有者(正如您所定义的那样,它看起来像它在全球范围内)。因此,您必须使用所需值的参数调用该函数,然后在函数中使用它,如下所示:
<?php
echo "<span onclick=\"ConfirmDelete(\$(this).attr('data-id'))\" data-id={$row['project_id']} class='button-content'>
...
($
已转义,因为您已使用PHP回复它。
然后你的函数看起来像这样:
function ConfirmDelete(data_id)
{
if (confirm("Delete Account?"))
var id= data_id;
alert(id);
location.href='config-project-delete.php?id='+id;
}
如果您没有在其他任何地方使用data-id属性并且仅用于此目的,您可以通过直接传递值来简化HTML方面:
<?php
echo "<span onclick=\"ConfirmDelete('{$row['project_id']}')\" class='button-content'>
...
请注意,我还没有对这些代码进行测试,在混合HTML,JS和PHP时,很容易搞砸了(至少对我而言),所以根据需要调整上面的内容。 / p>
答案 1 :(得分:0)
试试这个
<span onclick="javascript:deleteConfirm('<?php echo 'config-project-delete.php?id='.$row['project_id'] ?>');" deleteConfirm class='button-content'>
的javascript
function deleteConfirm(url)
{
if(confirm('Do you want to Delete this record ?'))
{
window.location.href=url;
}
}
答案 2 :(得分:0)
您必须将触发对象传递给您的函数。
function ConfirmDelete(triggering_object)
{
if (confirm("Delete Account?")) {
var id= $(triggering_object).attr('data-id');
alert(id);
location.href='config-project-delete.php?id='+id;
}
}
并添加&#39;这个&#39;对你的对象:
echo "<span onclick=\"ConfirmDelete(this);\" data-id={$row['project_id']} class='button-content'>";
答案 3 :(得分:0)
尽管Nick Coons回答是一种更简单的方法(将变量传递给函数),但是为了获得首次询问有关使用数据属性方法的结果,您必须将event
传递给函数得到合适的节点。 http://jsfiddle.net/2t4hK/
function ConfirmDelete(e) {
var target = $(e.target);
if (confirm("Delete Account?")) {
var id = target.attr('data-id');
alert(id);
//location.href='config-project-delete.php?id='+id;
}
}
<span onclick="ConfirmDelete(event)" data-id="1" class="button-content">Delete</span>
<?php
echo '<span onclick="ConfirmDelete(event)" data-id="'.$row['project_id'].'" class="button-content">';
echo '<i class="glyph-icon icon-trash-o float-left"></i>Delete</span>';
?>
此外,在您的代码中,我建议您在引号内包装data-id的值。