2013-08-16 70 views
1

我遇到了此確認框彈出多次的問題。我只在確定按鈕被按下後才確認。如果我只點擊那個按鈕,這個按鈕應該只會詢問一次,但是它會爲我們每個按鈕提問一次。jQuery確認彈出多次

任何想法,爲什麼這是循環,如果我只是在用戶點擊一個特定的按鈕時觸發這種情況?

$(".TweetNow").each(function() {  
    $(this).click(function TweetThis() { 

     var identify = $(this).attr('id'); 
     var prestart = identify.indexOf('_'); 
     var start = prestart + 1; 
     var end = identify.length; 
     var position = identify.substr(start, end); 

     var message = $("#Tweet_" + position).val(); 
     var site = $("#SiteLabel").text(); 

     if (message != '') { 
      var trend = $("#Topic_" + position).text(); 
      var website = $("#SiteLabel").text(); 
      if (confirm("Are you sure you want to tweet the following message:\n" + message + " ?")) { 
       PageMethods.TweetThis(message, site, trend, website); 
       location.reload(); 
      } 
     } 
    }); 
}); 
+1

你爲什麼要使用。每個在這裏更改您的代碼

$(".TweetNow").click(function() { var identify = $(this).attr('id'); //Rest of code }); 

相反的? –

+2

這是因爲您正在使用.each類類型選擇器。它會爲與選擇器匹配的每個元素運行該函數。 – Zack

+1

@Zack雖然不應該有問題,但他在裏面使用'this',導致每個元素綁定一個單擊事件。 –

回答

0

$(".TweetNow").each(function() {  
    $(this).click(function TweetThis() { 

    }); 
});