我正在處理兩個單獨的HTML文件;文件一個是是主頁,而文件兩個包含一個Kendo-UI彈出對話框的主體。彈出窗口在主頁面中使用。如何在jQuery選擇器中更改上下文
在JavaScript文件,我嘗試引用一個HTML元素是在文件一個。它不起作用。
通過一些調試,我已經成功地發現了以下內容:
// In Javascript of file two.
console.log($("#StartPayrollButton"));
// Output in Firefox console:
Object { context: HTMLDocument → CalendarDetails, selector: "#StartPayrollButton" }
這裏就是我得到的,當我在控制檯手動運行在同一行:
// Manually run in the Firefox console.
console.log($("#StartPayrollButton"));
// Output in Firefox console:
Object { 0: <a#StartPayrollButton.btn.btn-large.btn-squared-default.blue>, length: 1, context: HTMLDocument → MA0004, selector: "#StartPayrollButton" }
能人向我解釋發生了什麼事?我注意到context
在結果上是不同的;第一個結果參考文件兩個,而第二個結果參考網頁(因此文件一個)。
但是,在這種情況下(可怕雙關語意圖)的背景是什麼?我能否以某種方式更改代碼中的上下文(當使用jQuery選擇器時)?
編輯:我去了,發現如何創建對話框。這的確是一個iframe
:
// Razor in file one.
@(Html.Kendo().Window()
.Name("PayrollWindow")
.Title("Start Payroll")
.Content("Loading payroll options...")
.LoadContentFrom("CalendarDetails", "Payroll", new { co = Model.Co, guid = Model.calendarId })
.Draggable()
.Modal(true)
.Iframe(true)
.Visible(false)
.Width(800)
.Height(530)
.Deferred()
)
通過頁面,你真的意味着兩個不同的網頁,因爲你的對話框正在使用一個iframe? –
使用不同的ID來避免像「#StartPayrollButton-one」這樣的混淆。 –
@KevinB我不知道,因爲我原本沒有實現這個。我明天他可以問問開發商。 –