Javascript 对话框按钮上未运行AJAX单击
不知是否有人能帮助我 首先,我道歉,因为我刚刚开始使用Javascript,所以我可能犯了一个非常基本的错误,所以请容忍我 我正试图从我的图库页面中的一个第三方软件中实现Javascript 对话框按钮上未运行AJAX单击,javascript,ajax,alert,Javascript,Ajax,Alert,不知是否有人能帮助我 首先,我道歉,因为我刚刚开始使用Javascript,所以我可能犯了一个非常基本的错误,所以请容忍我 我正试图从我的图库页面中的一个第三方软件中实现示例2 如下面的代码所示,我已经能够将消息添加到onclick事件中,即当用户单击“bin”图标时,但是应该在被单击的“Delete”按钮上运行的AJAX代码失败: <script type="text/javascript"> Galleria.ready(function() { th
示例2
如下面的代码所示,我已经能够将消息添加到onclick事件中,即当用户单击“bin”图标时,但是应该在被单击的“Delete”按钮上运行的AJAX代码失败:
<script type="text/javascript">
Galleria.ready(function() {
this.$('thumblink').click();
$(".galleria-image").append(
"<span class='btn-delete ui-icon ui-icon-trash'></span>");
$(".btn-delete").live("click", function(){
$.msgbox("You are about to delete this image. It cannot be restored at a later date. Do you wish to continue?", {
type: "alert",
buttons : [
{type: "submit", value: "Delete"},
{type: "cancel", value: "Cancel"}
]
},function(Delete) {
var img = $(this).closest(".galleria-image").find("img");
// send the AJAX request
$.ajax({
url : 'delete.php',
type : 'post',
data : { image : img.attr('src'), userid: "VALUE", locationid: "VALUE"},
success : function(){
img.parent().fadeOut('slow');
}
});
});
return false;
});
});
</script>
Galleria.ready(函数(){
这是。$('thumblink')。单击();
$(“.galleria image”)。附加(
"");
$(“.btn delete”).live(“单击”,函数(){
$.msgbox(“您将要删除此图像。以后无法还原。是否继续?”{
键入:“警报”,
按钮:[
{类型:“提交”,值:“删除”},
{类型:“取消”,值:“取消”}
]
},功能(删除){
var img=$(this).closest(“.galleria image”).find(“img”);
//发送AJAX请求
$.ajax({
url:'delete.php',
键入:“post”,
数据:{image:img.attr('src'),userid:“VALUE”,locationid:“VALUE”},
成功:函数(){
img.parent().fadeOut('slow');
}
});
});
返回false;
});
});
我真的不确定我在这里哪里出了错,尽管我花了一些时间来检查代码。我只是想知道是否有人可以看看这个,让我知道我哪里做错了
更新后
工作解决方案
<script type="text/javascript">
Galleria.ready(function() {
this.$('thumblink').click();
$(".galleria-image").append(
"<span class='btn-delete ui-icon ui-icon-trash'></span>");
$(".btn-delete").live("click", function(){
var img = $(this).closest(".galleria-image").find("img");
$.msgbox("You are about to delete this image. It cannot be restored at a later date. Do you wish to continue?", {
type: "alert",
buttons : [
{type: "submit", value: "Delete"},
{type: "cancel", value: "Cancel"}
]
},
function(result) {
if(result)
// send the AJAX request
$.ajax({
url : 'delete.php',
type : 'post',
data : { image : img.attr('src'), userid: "VALUE", locationid: "VALUE"},
success : function(){
img.parent().fadeOut('slow');
}
});
});
return false;
});
});
</script>
Galleria.ready(函数(){
这是。$('thumblink')。单击();
$(“.galleria image”)。附加(
"");
$(“.btn delete”).live(“单击”,函数(){
var img=$(this).closest(“.galleria image”).find(“img”);
$.msgbox(“您将要删除此图像。以后无法还原。是否继续?”{
键入:“警报”,
按钮:[
{类型:“提交”,值:“删除”},
{类型:“取消”,值:“取消”}
]
},
功能(结果){
如果(结果)
//发送AJAX请求
$.ajax({
url:'delete.php',
键入:“post”,
数据:{image:img.attr('src'),userid:“VALUE”,locationid:“VALUE”},
成功:函数(){
img.parent().fadeOut('slow');
}
});
});
返回false;
});
});
非常感谢并问候似乎msgbox回调中的
此
不是一个元素(换句话说,img
变量是一个空数组。请尝试将var img
声明放在onclick侦听器中
$(".btn-delete").live("click", function(){
var img = $(this).closest(".galleria-image").find("img");
它有用吗?我已将变量
Delete
重命名为result
function(result) {
//result variable holds the value of what user clicks 'Delete' or 'Cancel'.
//Cancel click will pass false.
//Delete click will pass Delete.
alert(result)
//You can also check if(result=='Delete') instead of if(result)
if(result)
{
var img = $(this).closest(".galleria-image").find("img");
// send the AJAX request
$.ajax({
url : 'delete.php',
type : 'post',
data : { image : img.attr('src'), userid: "VALUE", locationid: "VALUE"},
success : function(){
img.parent().fadeOut('slow');
}
}
看看这是否有效。它是否会引发任何错误?请检查javascript控制台,看看是否存在任何JS错误?嗨@Asdfg,感谢您抽出时间回复我的帖子。我刚刚进入Firefox并运行了该页面。不幸的是,它不会显示任何错误消息。谢谢regards@IRHM安装firebug插件,在安装完成后将其打开按F12键重新启动浏览器,打开控制台,刷新页面,在html页面中提交请求,并在控制台中查找错误。可以将警报消息放入删除函数中,看看是否调用了该函数吗?还可以定义失败的ajax块,看看ajax调用中是否有错误吗?我还怀疑您的JSON格式是f或者传递数据是不正确的。@Asdfg,感谢您在这方面的持续帮助。我个人认为这是答案,当然是根据我在Matej Konecy建议中的发现,但我不知道如何做到这一点。Kind regardsHi@Matej Konecny,感谢您对我的帖子和建议的回复。这确实有效,但不幸的是当选择“取消”时,它会删除图像。Kind Regard在执行AJAX调用之前,您需要检查“Delete”变量值。您好@Asdfg,谢谢您。我恐怕这就是我缺乏Javascript知识让我失望的地方。我很抱歉,但您可以详细说明我是如何做到这一点的吗?Kind regardsHi@Asdfg,非常感谢。我相信我已经正确地实现了这一点,但不幸的是,“thumnail”视图不再起作用。我已经更新了我在最初的帖子中使用的链接来说明这一点,可能比我能解释的要好得多。非常感谢并感谢@Asdfg,感谢您为此付出的时间、麻烦和帮助。我已经我在这方面做了更多的工作,现在我已经成功地做到了。这是对你的代码的一个很小的修改,但我已经将其添加到我原来的帖子中以供参考。再次,非常感谢和亲切的问候