2010-01-25 129 views
3

我在jQuery中使用AjaxUpload插件,並且大部分工作都正常,但我必須點擊兩次按鈕才能執行它。我猜這是一個範圍的問題......或者還在學習......jQuery AjaxUpload,必須點擊按鈕兩次?

這裏是我的代碼(?):

$(".upload-button").live("click", function(event) { 
     event.preventDefault(); 
     var currentId = $(this).closest("div").attr("id").replace("slide-", ""); 
     new AjaxUpload($(this), { 
     action: "./php/upload.php", 
     name: 'userfile', 
     autoSubmit: true, 
     onSubmit: function(file , ext) { 
     }, 
     onComplete: function(file, response) { 
     // enable upload button 
     // this.enable(); 
     $("#slide-" + currentId).find(".movie-image").attr("src", baseImgPath + file); 
     $("#mImg" + currentId).val(file); 
     } 
    }); 

任何想法表示讚賞。 :)

+0

編輯您的文章(代碼),請...這是很難讀... – Reigel 2010-01-25 19:00:57

回答

0

試試這個:

var $button = $(".upload-button"); 
    new AjaxUpload($button, { 
     action: "./php/upload.php", 
     name: 'userfile', 
     autoSubmit: true, 
     onSubmit: function(file , ext) { 
     }, 
     onComplete: function(file, response) { 
     // enable upload button 
     // this.enable(); 
     var currentId = $(this).closest("div").attr("id").replace("slide-", ""); 
     $("#slide-" + currentId).find(".movie-image").attr("src", baseImgPath + file); 
     $("#mImg" + currentId).val(file); 
     } 
    }); 
+0

我按照這個想法,但不幸的是,我仍然需要點擊兩次... – TwstdElf 2010-01-25 19:33:07

2

得到它的工作 - 這裏是如何爲別人可能被具有類似的問題...

的主要問題是,正在創建這些按鈕動態的,並且AjaxUpload不會被初始綁定在.live()調用中,因此「點擊,移動,再次點擊,觸發」。

通過調用AjaxUpload(包裹在它自己的功能,以下),由於有更多的按鍵我的循環中,它們最初的約束,並正常運行。

在循環使用的行:

makeUpButton(("#upload-button-" + slideCount), slideCount); 

的AjaxUpload電話:

function makeUpButton(theButton, theId) { 
    new AjaxUpload(theButton, { 
     action: "./php/upload.php", 
     name: 'userfile', 
     autoSubmit: true, 
     onSubmit: function(file , ext) { 
      this.disable(); 
     }, 
     onComplete: function(file, response) { 
      this.enable(); 
      $("#slide-" + theId).find(".movie-image").attr("src", baseImgPath + file); 
      $("#mImg" + theId).val(file); 
     }  
    }); 
} 

希望這可以幫助別人,我知道這是我逼瘋了幾天。 ;) 乾杯。

+0

請更新您的原始帖子,而不是發佈這個答案 – 2010-01-26 17:39:51

+0

@TB - 對不起,我沒有一個帳戶,當我原來的職位,並且在我今天回來之後無法看到編輯它的方法。我現在有一個帳戶,將來會這樣做。 – TwstdElf 2010-01-26 17:41:58

+0

考慮通過點擊旁邊的「打勾」或「檢查」圖標將此答案標記爲「已接受」。 – 2012-08-18 14:02:31

2

嘗試這種情況:

$(".upload-button").live("hover", function(event) { 

    var currentId = $(this).closest("div").attr("id").replace("slide-", ""); 
    new AjaxUpload($(this), { 
    action: "./php/upload.php", 
    name: 'userfile', 
    autoSubmit: true, 
    onSubmit: function(file , ext) { 
     //onsubmit code here.. 
    }, 
    onComplete: function(file, response) { 
     // oncomplete code here 
    } 
    }); 
    $(this).trigger('click'); 

});

礦井工作,但我不確定它是如何工作的。該「懸停」(而不是「點擊」)將創建一個新的AjaxUpload(這將防止點擊兩次)

0
<script type="text/javascript"> 

$(document).ready(function() { 
     $('#yourlinkorbutton').click(function(){ 

       new AjaxUpload('#yourlinkorbutton'),{ 

        .... 

       }); 
    }); 

    $('#yourlinkorbutton').trigger.click(); 
    $('#yourlinkorbutton').trigger.click(); 
}); 

,將讓你倆點擊頁面加載時。從那裏點擊一下。

+0

爲了提高你的文章的質量,請包括/爲什麼你的文章將解決問題。 – 2012-10-06 06:35:52

2

如果要創建一個動態的按鈕,你需要創建一個使用一個ID爲每個按鈕AjaxUpload,試試這個:如果你使用IMG

$('#' + ID).fadeOut("slow", function() { $('#' + ID).remove(); }); 

// to add new button                                 
$("#add_sector").click(function() { 
    var ID = [Generate a new ID]; 
    var button = '<a href="javascript:;" id="' + ID + '" class="subir_imagen"><img src="images/icon_subir32.png"></a>'; 


    $('#cont_img_catalogo').append(button); 

    //create Ajax                                  
    new AjaxUpload($('#' + ID),{ 
     action: 'procesar_imagen.php', 
      name: 'image', 
      onSubmit : function(file, ext){ 
      // desabilitar el boton                              
      this.disable(); 
      ... 
      }, 
      onComplete: function(file, response){ 
      // Habilitar boton otra vez                             
      this.enable(); 

      ... 

      } 
     }); 



    }); 

要刪除按鈕使用,你需要的類

a, a:visited{ 
display: block; 
float: left; 
text-decoration:none;} 
0

如果你使用動態控制,那時候我們在兩次點擊中遇到問題,我有解決了它爲我工作。 我有花兩天時間和解決,請檢查下面的步驟:=

使用添加Java腳本加載功能在PHP循環每個以下

<?php 
for ($i=1; $i<=5; $i++) 
    { 
?> 
<script> 
$(window).load(function() 
     { 
     uploadphoto(<?php echo $i; ?>)     
      }); 
</script> 
<a href="javascript:void(0)" id="photo<?php echo $i; ?>" onclick="uploadphoto(<?php echo $i; ?>)" style="color: #666;"> Upload </a> 
<?php 

} 
?> 

和你的JavaScript文件,你可以從PHP循環動態ID

function uploadphoto(id) 
{ 

new AjaxUpload('#photo'+id, { 

所以,你可以通過上面的示例行動態ID,這是它:)編碼快樂

相關問題