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>
這個'你'的意思是這個'$('#userDismiss',this)'? – DontVoteMeDown 2014-10-09 18:34:29
該語句中的'this'爲選擇器提供上下文。它和'$('#tutorial')'一樣。find('#userDismiss');' – 2014-10-09 18:36:47
它是一個類似'$(this).find('#userDismiss')'的範圍選擇器,但不會因爲身份證號碼應該是獨一無二的。 – 2014-10-09 18:37:19