2011-07-10 66 views
1

嗨,人们我有这个jquery,这使得打电话到一个页面插入一个电子邮件到新闻列表。jquery ajax调用两次发射

呼叫被解雇两次,网址,有一个奇怪的_我还没有加入的这两个网址是被称为1次点击 参数:

http://www.camerich.co.uk/[email protected]&_=1310316941893 
http://www.camerich.co.uk/[email protected]&_=1310316941906 

我要如何复制停止呼叫???

Jquerycode:

$('.searchbox_submit').click(function() { // start the click function for news_submit div 
     // get the email address that has been entered 
     var emailtoadd = $("#emailtoadd").val(); 
     // set the url to load 
     var loadUrl = "newsletter_add.php?emailtoadd="+emailtoadd; 
     // set the status to let the user know we are loading in the data 
     $("#newsresponse").empty().html('<img src="/images/site/loadinfo.gif" width="16" height="16" align="absbottom" /> Processing Request...'); 
     //load in the data 
     $.get(loadUrl, {}, function(myData) { 
      // add the response to the newsresponse div 
      $("#newsresponse").empty().html(myData); 
     }); // end get request 
    });//end click function 

HTML代码:

<div class="iconthumbs" style="background-image:url(images/icons/smaller/subscribe_button.jpg)"> 
     <div id="searchwrapper" name="searchForm"> 
      <div class="errortxt" id="newsresponse" style="padding:0 0 0 15px;"></div> 
      <input type="text" class="searchbox" name="emailtoadd" id="emailtoadd" style="color: #FFF" onClick="this.value='';" onFocus="this.select()" onBlur="this.value=!this.value?'Enter Email To Subscribe':this.value;" value="Enter Email To Subscribe" /> 
      <input type="image" src="/images/site/1px.gif" class="searchbox_submit" id="news_submit" value="" /> 
     </div> 

     </div> 

回答

1

的 “_” 是由JQuery的加入让过去IE缓存。这包含从呼叫发生的时间开始的时间。

你给的例子中,时间似乎是

1310317101270 = Sun, 10 Jul 2011 16:58:21 GMT 
1310317079839 = Sun, 10 Jul 2011 16:57:59 GMT 

那相隔约22秒。你确定他们来自同一个电话吗?

PS:用于this的时代转换为时间

+0

是的,这只是两个电话中的一个例子更新用于1的两个调用的问题单击。 –

0

你为什么不使用jquery.one()

$('.searchbox_submit').one('click',function(){ 

//code 

}); 
+0

谢谢我刚刚尝试过,它仍然发送两次电话 –

0

尝试通过防止默认提交输入图像按钮的动作开始点击功能:

$('.searchbox_submit').click(function(e) { 
    e.preventDefault(); 
    // rest of your code 
+0

仍然发送两次 –

+0

然后,它必须是代码中的其他内容,而不是您在问题中发布的内容。我能够让你的代码在小提琴中运行良好:[http://jsfiddle.net/jensbits/XmftR/](http://jsfiddle.net/jensbits/XmftR/)请注意,小提琴必须使用jsonp for在jsfiddle中获取表单,但这不应该是一个因素。另外,我必须删除电子邮件输入框中的样式才能看到文本。 –

+0

更新了小提琴所以输入图像按钮将显示:http://jsfiddle.net/XmftR/1/ –