2014-04-07 47 views
0

我有一些HTML字段和表我遇到的問題是,在一些字段show()hide()正在工作,有些只是不在谷歌瀏覽器。的工作代碼在鉻中奇怪的顯示/隱藏行爲

實施例:

HTML:

<div class="one-col-box" > 
      <label>Number</label> 
      <input type="text" name="clientNumber" id="clientNumber" data-bind="event: { dblclick: dbClickChange }, value: clientNumber" style="width: 100%"> 
      <select name="clientNumberSel" id="clientNumberSel" data-bind="options: result, value: clientNumbersOldVal, optionsCaption: '--- select ---', event: {change: loadPlans }" style="display: none"></select> 
      <img id="imgClose" src="/monitring/js/images/close2.png" alt="Close" data-bind="click: hideClientNums" style="display: none;"> 
    </div> 

dbClickChange功能 - 當德輸入是雙點擊執行:

dbClickChange = function(){ 
          $('#clientNumberSel').parent().show(); 
          $('#clientNumberSel').show(); 

          $('#imgClose').show(); 
          $('#clientNumber').hide();       
          }; 

上面的代碼完美地工作,但這不是。

HTML

<div class="one-col-box" > 
       <label style="width: 150px">Classification</label> 
       <select class="selects" name="creditClassificationSoge" id="creditClassificationSoge" data-bind="value: creditClassificationSoge">    
        <option>-- Select --</option> 
        <option data-bind="click: hideClassif">No</option> 
        <option data-bind="click: showClassif">Yes</option>   
       </select> 
      </div> 
    <div class="six-col-box"> 
     <div class="two-col-box" id="descrH" style="display: none;"> 
      <label>Description </label> 
      <input type="text" style="width: 392px;"></input> 
     </div> 
    </div> 

yesno選擇執行的代碼:

showClassif = function(){ 
         $('#descrH').show();      
        }; 

        hideClassif = function(){ 
         $("#descrH").hide('fast'); 
        }; 

我真的無法理解什麼是錯我的代碼,將2份JS是一樣的,我會開始哭泣。爲什麼在某些箱子裏顯示/隱藏正在工作,有些則不是?也許我錯過了一些小事,但我無法發現它。

+0

表演的一部分似乎罰款,但你確保函數被調用?添加日誌語句。 – Dave

+0

看着你的工作示例中的數據綁定,它看起來是一個完全不同的語法(「event:」),所以我想這就是問題所在。 – Dave

+0

@Dave事件發生時,'event'正在執行js腳本 - 例如mouseOver,mouseOut,雙擊等等。也許這是問題,但沒有事件'click' :( – Slim

回答

1

我會使用超時而不是。該腳本立即執行,因此它同時顯示和隱藏。

// Animate Slide 
    function showClassif(id){ 
     var div = $(id); 
     div.show(); 
     var end = setTimeout(function(){ 
      div.hide('fast'); 
      clearTimeout(end); 
     }, 200); // The delay is 200ms change the 200 to alter this 

    }); 

    showClassif("#showClassif"); 
+1

這兩種行爲有不同的功能。 – Dave

+0

被編輯以定義在任何功能中使用的功能。他的問題是這個節目,隱藏着,同時被調用,使得它看起來好像什麼也沒有發生。 – WASasquatch

+0

哦,現在它顯示一秒鐘消失......但仍然不會顯示在鉻 – Slim

1
$("#clientNumberSel").css("visibility", "hidden"); 
    $("#clientNumberSel").css("visibility", "visible");