Javascript 对话框按钮上未运行AJAX单击

Javascript 对话框按钮上未运行AJAX单击,javascript,ajax,alert,Javascript,Ajax,Alert,不知是否有人能帮助我 首先,我道歉,因为我刚刚开始使用Javascript,所以我可能犯了一个非常基本的错误,所以请容忍我 我正试图从我的图库页面中的一个第三方软件中实现示例2 如下面的代码所示,我已经能够将消息添加到onclick事件中,即当用户单击“bin”图标时,但是应该在被单击的“Delete”按钮上运行的AJAX代码失败: <script type="text/javascript"> Galleria.ready(function() { th

不知是否有人能帮助我

首先,我道歉,因为我刚刚开始使用Javascript,所以我可能犯了一个非常基本的错误,所以请容忍我

我正试图从我的图库页面中的一个第三方软件中实现
示例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,感谢您为此付出的时间、麻烦和帮助。我已经我在这方面做了更多的工作,现在我已经成功地做到了。这是对你的代码的一个很小的修改,但我已经将其添加到我原来的帖子中以供参考。再次,非常感谢和亲切的问候