0

誰かが私を助けてくれるのではないかと思います。

まず、Javascriptを使い始めたばかりなのでお詫びします。基本的な間違いをしているのではないかと思いますので、ご容赦ください。

ここに表示されているギャラリーページで、このサードパーティソフトウェアExample 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>

コードの分析に時間を費やしたにもかかわらず、ここでどこが間違っているのか本当にわかりません。誰かがこれを見て、どこが間違っているのか教えてくれないかと思っただけです。

更新後の作業ソリューション

<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>

よろしくお願いします

4

2 に答える 2

0

変数の名前をに変更し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');
    }
  }

これが機能するかどうかを確認します。

于 2012-05-21T16:04:43.393 に答える
0

msgboxのコールバックは要素ではないようthisです(つまり、img変数は空の配列です。var img宣言をonclickリスナーに直接入れてみてください。

$(".btn-delete").live("click", function(){
var img = $(this).closest(".galleria-image").find("img");

役に立ちましたか?

于 2012-05-21T14:56:35.377 に答える