2013-08-16 67 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() { 

    }); 
});