2010-08-30 98 views
0

我已經運行到的情況下用戶會:如何禁用整個頁面,除了一個「島嶼」?

  1. 進入編輯模式,在網格上
  2. 編輯他們的數據
  3. 不要點擊保存他們正在編輯
  4. 行 按鈕
  5. 但是相反點擊「下一頁」按鈕 以爲它會拯救他們 數據

我有玩具編輯的想法是添加功能到「下一頁」按鈕點擊,這將檢查網格在編輯模式下的行並保存它們,但我認爲這將保存一些用戶不想保存的數據。

我想要做的是基本上覆蓋整個頁面,除了處於編輯模式的行與一個半透明的div,不允許他們點擊任何其他東西,直到他們保存更改或取消編輯模式。

有沒有人使用jQuery做過類似的事情?

+4

如何提示用戶是否要在下一個按鈕點擊時保存? – JohnFx 2010-08-30 15:27:03

+0

這可以工作,但這似乎是一個更好的用戶體驗。 – 2010-08-30 15:29:37

回答

0

我會說「正確」的解決辦法是禁用「下一步」按鈕,直到該行被保存(或編輯被取消)

但是,如果你想你的描述,這是非常很多行動的動作jQuery UI Dialog plugin.

+0

「適當」是什麼意思?如果我想做的事情不能完成,那麼我最終可能會使用這個解決方案。我唯一擔心的是有些用戶可能會感到困惑。如果唯一的選擇是編輯您的數據或取消我認爲用戶不會感到困惑...... – 2010-08-30 15:36:06

+0

「正確」,如「這是嚮導控制通常工作的方式」 - 「下一步」被禁用,直到面板是在我們可以繼續前進的狀態。 – 2010-08-30 16:03:58

1

看來你不想要一個「嚮導」或「對話框」,你希望你的行在它的位置是模態的。你可以在捕捉鼠標事件的整個頁面上創建一個div,然後臨時添加一個類(jQuery對此非常完美)到構成單個目標行的所有div上,這會提高這些div的z索引整頁覆蓋div。

1

插件blockUI將完成此操作。強烈推薦。

只需在$.blockUI的整個頁面上屏蔽,然後在要啓用的行上調用$.unblockUI即可。

+0

你將如何$ .unblockUI()在一個單一的元素? $( '#mydiv')unblockUI();對我不起作用 – codecowboy 2011-08-11 10:51:01

+0

要取消阻止已經被阻止的單個元素,您可以使用'$('#mydiv')。unblock()' – HurnsMobile 2011-08-29 18:11:59