2014-10-09 31 views
0

如果檢測到特定模式,以下jquery函數將打開教程對話框。我最近添加了「不再顯示」複選框,因此用戶可以決定他們不想再看到彈出窗口,其中包括一個設置會話變量以存儲此設置的ajax調用。在添加「this」引用之前,我無法讓ajax調用工作。有誰知道爲什麼需要「這個」? #userDismiss應該選擇具有相應ID的輸入,並且我已經確認該ID在此項目的代碼庫中的其他地方無法使用。下面的代碼可以工作,但我對jQuery相當陌生,並且有興趣詳細瞭解爲什麼它能夠像書面一樣工作。爲什麼需要從jQuery對話框中調用ajax的「自我」引用?

jQuery代碼片段:

$('#tutorial').dialog 
({ 
    show: "fade", 
    title: "Helpful Hint", 
    modal: false, 
    close: function(event, ui) 
    { 
     if ($('#userDismiss', this).is(':checked')) 
     { 
      $.ajax 
      ({ 
       type: 'POST', 
       url: '/ajax/do-not-show-again.php' 
      }); 
     } 
    }, 
    buttons: 
    { 
     Okay: function() 
     { 
       $(this).dialog('close'); 
     } 
    } 
}); 

,這是包含在上面的jQuery代碼

<div class="no-disp" $tutorial> 
     <p>This is a tutorial message</p> 
     <br /> 
     <input id="userDismiss" type="checkbox" name="dismiss">Don't show me this again</input> 
    </div> 
+0

這個'你'的意思是這個'$('#userDismiss',this)'? – DontVoteMeDown 2014-10-09 18:34:29

+1

該語句中的'this'爲選擇器提供上下文。它和'$('#tutorial')'一樣。find('#userDismiss');' – 2014-10-09 18:36:47

+2

它是一個類似'$(this).find('#userDismiss')'的範圍選擇器,但不會因爲身份證號碼應該是獨一無二的。 – 2014-10-09 18:37:19

回答

-1

用於對話框因爲你正在做成才「$ div中的PHP代碼段(本) .dialog( '關閉');」或測試一個正在接收平淡「事件」的元素的條件

相關問題