目前我正在为我的文章设置一个管理面板,其中包含一些快速操作(在这种情况下,删除文章)。一旦我点击垃圾桶,就会打开一个对话框并要求我承认删除。它应该基于article_id打开相同的对话框。我不太了解JavaScript(除了noobie的东西)。
部分PHP foreach代码:
foreach ($show_articles as $blog):
echo "<div class='blog_articles_bottom_container'>";
echo "<div class='blog_articles_bottom_title'>".$blog['title']."</div>";
echo "<div class='blog_articles_bottom_date'>".date('j-m-Y, H:m', $blog['created_at'])."u</div>";
echo "<div class='blog_articles_bottom_comments'>".$amount_comments['total']."</div>";
echo "<div class='blog_articles_bottom_likes'>".$amount_likes['total']."</div>";
echo "<div class='blog_articles_bottom_actions'>";
echo "<div id='article_edit' class='blog_articles_bottom_actions_edit'></div>";
echo "<div id='btn-article-remove-dialog-".$blog['article_id']."' class='blog_articles_bottom_actions_remove'></div>";
echo "<div id='article_settings' class='blog_articles_bottom_actions_settings'></div>";
echo "<div id='clear'></div>";
echo "</div>";
echo "<div id='clear'></div>";
echo "</div>";
endforeach;
如您所见,删除按钮具有以下ID:#id ='btn-article-remove-dialog - “。$ blog ['article_id']。”成功输出:第一篇文章的id ='btn-article-remove-dialog-1“。
这是对话部分:
<div id="blog_articles_dialog-" class="blog_articles_dialog" title="Confess deletion">
Are you sure you want to delete </b>'".$blog['title']."'</b> ?
</div>
这是JavaScript部分:
$(document).ready(function(){
$( "#blog_articles_dialog-"+article_id).dialog({ autoOpen: false, resizable: false, draggable: false, closeOnEscape: true, dialogClass: "alert-dialog", width: "380", modal: true });
$( "#blog_articles_dialog-"+article_id).dialog({ hide: { effect: "clip", direction: "vertical", duration: 350 } });
$( "#btn-article-remove-dialog-"+article_id).click(function(article_id) {
$( "#blog_articles_dialog-"+article_id).dialog( "open" );
console.log(article_id);
});
});
我的问题如下:我该如何存档?它当前在我的控制台日志中回显了'未捕获的ReferenceError:article_id未定义'。试图解决这个问题,但正如我所说,我是一个nooblet。
由于
编辑#1(@ViktorCarlén) 它没有,所以我在其中添加了以下内容:
var article_id = $("#blog_articles_dialog-"+article_id);
'article_id未定义'erro消失,但我得到'未捕获错误:语法错误,无法识别的表达式:#blog_articles_dialog- [object Object]'作为回报:(
答案 0 :(得分:1)
让我们删除对话框ID中的最后一行:
<div id="blog_articles_dialog" class="blog_articles_dialog" title="Confess deletion">
Are you sure you want to delete </b>'".$blog['title']."'</b> ?
</div>
然后跳过不存在的article_id变量。 (像这样的空函数调用与$(document).ready();)
相同$(function () {
$("#blog_articles_dialog").dialog({ autoOpen: false, resizable: false, draggable: false, closeOnEscape: true, dialogClass: "alert-dialog", width: "380", modal: true });
$("#blog_articles_dialog").dialog({ hide: { effect: "clip", direction: "vertical", duration: 350 }});
});
然后添加:data-article-id =&#34;&#39;。$ blog [&#39; article_id&#39;]。&#39;&#34;对于触发删除对话框的元素,以下内容应该有效:
$(".blog_articles_bottom_actions_remove").on('click', function (event) {
$("#blog_articles_dialog").dialog("open");
var article_id = $(this).attr('data-article-id');
console.log(article_id);
});
告诉我你是否希望我详细说明它是否不清楚或不能正常工作。