2013-02-28 28 views
1

如何解決這個選擇器「div」,它會在jQuery UI對話框之上,並且它可以這樣做?什麼可能是最好的解決方案?與「farbtastic」顏色選擇器的jquery ui對話框

這裏是我想看到的內容: 1 http://img6.imageshack.us/img6/4866/74030613.png

http://jsfiddle.net/gt4Ry/2/

HTML:

<div id="settingsDialogWindow" title="Settings" style="display:none;"> 
    <label for="color">Color:</label> 
    <input type="text" id="color" name="color" value="#123456" maxlength="7" /> 
    <div id="picker" style="position: absolute; 
    left: 50px; 
    border: 1px solid #aaa; 
    background-color: #fff; 
    -webkit-border-radius: 4px !important; 
    border-radius: 4px !important; 
    z-index: 99999999;"></div> 
</div> 

JS:

$(function() { 
    $("#settingsDialogWindow").dialog({ 
     modal: true, 
     draggable: true, 
     height: 'auto', 
     width: 300, 
     minWidth: 300, 
     minHeight: 60, 
     resizable: false, 
     position: { at: "center middle" } 
    }); 


    $('#picker').farbtastic('#color'); 

    $("#color").focus(function() { 
     $("#picker").show(); 
    }); 
    $("#color").focusout(function() { 
     $("#picker").hide(); 
    }); 
}); 
+0

抱歉,但是......你想要什麼?你希望它是可移動的,但在對話框之外? – 2013-02-28 18:22:19

+0

我想要那個顏色選擇器會在jQuery UI之上,現在它僅僅是它的一部分和滾動條apears。 – user007 2013-02-28 18:25:08

+0

...對我來說,它在對話框中,沒錯。 (因爲它應該是,如果你想在外面,給它一個絕對的位置(或者至少是一個相對的左邊:-50px;或者其他的東西),但是不存在滾動條 – 2013-02-28 18:59:11

回答

0

我認爲這能解決您的問題!

http://jsfiddle.net/gt4Ry/15/

HTML:

<div id="settingsDialogWindow" title="Settings" style="display:none;"> 
<label for="color">Color:</label> 
<input type="text" id="color" name="color" value="#123456" maxlength="7" /> 
</div> 
<div id="picker" style="position: absolute; 
display:none; 
left: 50px; 
border: 1px solid #aaa; 
background-color: #fff; 
-webkit-border-radius: 4px !important; 
border-radius: 4px !important; 
z-index: 99999999;"> 
</div> 

JS:

$(function() { 
     $("#settingsDialogWindow").dialog({ 
      modal: true, 
      draggable: true, 
      height: 'auto', 
      width: 300, 
      minWidth: 300, 
      minHeight: 60, 
      resizable: false, 
      position: { at: "center middle" }, 
      drag: function(event, ui) { 
       $("#picker").css({top:ui.position.top+115,left:ui.position.left+30}); 
      } 
     }); 


     $('#picker').farbtastic('#color'); 

     $("#color").focus(function() { 
      $("#picker").show(); 
     }); 
     $("#color").focusout(function() { 
      $("#picker").hide(); 
     }); 
    }); 
+0

你知道如何在不拖動的情況下在啓動時設置其位置嗎 – user007 2013-02-28 19:22:19

+0

找到了: var position = $(「#settingsDialogWindow」)。closest('。ui-dialog')。offset(); $(「#picker」)。css({top:position.top + 115,left:position.left + 30}); – user007 2013-02-28 19:51:41

+0

這裏http://api.jqueryui.com/dialog/是對話框的文檔,嘗試使用事件「create:function(event,ui){}」在分支中添加相同的代碼「drag:」。如果不適合你嘗試事件「打開」。 – Alqin 2013-03-01 04:45:29