2012-09-09 92 views
0

我正在使用jQuery UI來增強兩個ASP.Net無線電。點擊時,我想改變用戶界面,當我用Chrome調試器完成時,它會按預期工作,直到函數結束時退出,然後調試器進入實際的jQuery源代碼,以及我的更改代碼得到恢復。到底是怎麼回事?jQuery函數在執行完成後跳入jQuery源代碼

功能是如下:

$('input:radio').change(function(e){ 
      e.preventDefault(); 
      var $this = $(this); 
      var uploadBox = $this.parent().parent().next(); 
      var manualBox = $this.parent().parent().next().next(); 
      if ($this.attr('id') == "<%= UploadRadioButton.ClientID %>"){ 
       manualBox.hide(); 
       uploadBox.show(); 
      } 
      else{ 
       uploadBox.hide(); 
       manualBox.show(); 
      } 
     } 
    ); 

(.toggle()不會因某種原因工作)

調試器進入這個片段jQuery的源的:

if (ret !== undefined) { 
    event.result = ret; 
    if (ret === false) { 
    event.preventDefault(); 
    event.stopPropagation(); 
    } 
} 

編輯: 我忘了提及的JavaScript坐在UserControl。

+0

評論e.preventDefault();與/和再試一次? – dbf

+0

@dbf仍然不起作用:( – Lee

+0

我建議不要使用服務器端語言來生成JavaScript,而應該使用類和'[data - *]'屬性以及jQuery的['data'](http:// api .jquery.com/data)方法。 – zzzzBov

回答

1

當它完成您的事件處理程序時,它會進入管理事件處理程序(實際上稱爲您的事件處理程序的代碼)的jQuery代碼,以及您在其中發佈的是jQuery代碼,而不是處理從事件處理程序返回值決定是否打算停止傳播並防止默認行爲。這很正常。

+0

這很有道理,但爲什麼我的更改在後? – Lee

+0

@lee - we 'd必須看到你的實際頁面評論此處發生了什麼。 – jfriend00

+0

我把代碼放在這裏:http://pastebin.com/bgbjr6P7 – Lee