我希望能夠在單擊搜索按鈕時顯示疊加層。點擊搜索按鈕時如何顯示疊加層?
我是新來的Jquery/JavaScript和基於什麼我學習上的堆溢出和谷歌,我能想出下面的代碼:
function displayOverlay(text) {
$("<table id='overlay'><tbody><tr><td>" + text + "</td></tr></tbody></table>").css({
"position": "fixed",
"top": "0px",
"left": "0px",
"width": "100%",
"height": "100%",
"background-color": "rgba(0,0,0,.6)",
"z-index": "10000",
"vertical-align": "middle",
"text-align": "center",
"color": "#fff",
"font-size": "40px",
"font-weight": "bold",
"cursor": "wait",
}).appendTo(".btn");
}
function removeOverlay() {
$("#overlay").remove();
}
function closeOverlay{
\t if($(".btn").data('clicked')){
\t \t displayOverlay("Loading...");
\t }
\t else{
\t \t $("#overlay").remove();
\t }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.11/angular.min.js"></script>
<div class="panel panel-default">
\t <div class="panel-body">
<!--- \t <div id="loader" style="position: fixed; top:0; left:0; width:100%; height: 100%; background: url('loader.gif') center center #efefef"></div><!--Progress bar--->
\t \t <form name="providerSearch" ng-submit="SearchProvider(searchParam);" novalidate="" role="form">
\t \t \t <div class="form-group"><input class="form-control" id="physiciansfirstname" ng-model="searchParam.FirstName" placeholder="First name:" type="text" /></div>
\t \t \t <div class="form-group"><input class="form-control" id="physicianslastname" ng-model="searchParam.LastName" placeholder="Last name:" type="text" /></div>
\t \t \t <div class="form-group"><select class="form-control" id="providerSpecialty" ng-model="searchParam.Specialty"><option disabled="disabled" selected="selected" value="">Specialty</option>
<option value=""></option><option>Family practice</option><option>General practice</option><option>Internal medicine</option><option>Pediatrics</option> </select></div>
\t \t \t <div class="form-group">
<SELECT name="proCity" class="form-control" id="city" placeholder="City" ng-model="searchParam.City">
\t \t \t \t \t <option disabled="disabled" selected="selected" value="">City</option>
\t \t \t \t \t \t <option value=""></option>
\t \t \t \t \t \t <cfoutput query="cityFind">
<option value=#city#>#city#</option>
\t \t \t \t \t \t </cfoutput>
\t \t \t \t \t </select>
<!---<select class="form-control" id="city" ng-model="searchParam.City"><option disabled="disabled" selected="selected" value="">City</option><option ng-repeat="c in Cities">{{c.City}}</option> </select>---->
</div>
\t \t \t <div class="row">
\t \t \t \t <div class="col-xs-6 no-right-padding paddingLanguage">
\t \t \t \t \t <div class="form-group widthLanguage">
<select name="language" class="form-control" ng-model="searchParam.Language">
\t \t \t \t \t <option disabled="disabled" selected="selected" value="">Language</option>
<option value=""></option>
\t \t \t \t \t <cfoutput query="Languages">
\t \t \t \t \t \t <option value=#Language#>#Language#</option>
\t \t \t \t \t \t </cfoutput>
\t \t \t \t \t </select>
\t \t \t \t \t <!---<select name="language" class="form-control widthLanguage" id="language" ng-model="searchParam.Language">
\t \t \t \t \t <option disabled="disabled" selected="selected" value="">Language</option>
\t \t \t \t \t <option ng-repeat="l in Languages">{{l.Lang}}</option>
\t \t \t \t </select>--->
\t \t \t \t \t </div>
\t \t \t \t </div>
\t \t \t \t <div class="col-xs-6 no-left-padding">
\t \t \t \t \t <div class="form-group"><select class="form-control" name="gender" ng-model="searchParam.Gender">
<option disabled="disabled" selected="selected" value="">Gender</option>
<option value=""></option>
<option>Male</option><option>Female</option> </select></div>
\t \t \t \t </div>
\t \t \t </div>
\t \t \t
\t \t \t <hr class="hrDoctor" />
\t \t \t <div style="margin-top:-10px; margin-bottom:10px; text-align:center; font-size:8pt! important">* or Search by Zip code radius *</div>
\t \t \t
\t \t \t <div class="row">
\t \t \t \t <div class="col-xs-7 no-right-padding">
\t \t \t \t \t <div class="form-group">
\t \t \t \t \t \t <div class="input-group"><select class="form-control" name="distance" ng-model="searchParam.distance"><option selected="selected">5</option><option selected="selected">10</option><option selected="selected">15</option><option selected="selected">20</option> </select>
\t \t \t \t \t \t \t <div class="input-group-addon">mi</div>
\t \t \t \t \t \t </div>
\t \t \t \t \t </div>
\t \t \t \t </div>
\t \t \t \t <div class="col-xs-5 no-left-padding widthZip">
\t \t \t \t \t <div class="form-group"><input allow-pattern="[\d\-]" class="form-control" id="zip" maxlength="5" ng-model="searchParam.Zip" placeholder="Zip code" type="text" data-default=""/></div>
\t \t \t \t </div>
\t \t \t </div>
\t \t \t <div class="form-group"><input class="btn btn-warning btn-block" ng-click="gotoElement('SearchResultsAnchor');" type="submit" value="Search" /></div>
\t \t \t <!---<div class="form-group buttonWidth resetButton"><input class="btn btn-primary btn-block" type="reset" value="Reset" onClick="window.location.reload()"/></div>--->
\t \t </form>
\t <!---</div><!---Progress bar--->--->
\t </div>
</div>
然而,當點擊搜索按鈕時,疊加層不會出現。
UPDATE
以下是當身體被調用,當頁面被訪問這是不希望出現的疊加。
$(function() {
$("body").click(function() {
if ($("#overlay").length > 0) {
removeOverlay();
} else {
displayOverlay("Loading...");
}
});
});
這是我調用的setTimeout()函數的行:
<div class="form-group"><input class="btn btn-warning btn-block ignore" ng-click="gotoElement('SearchResultsAnchor');" onclick="setTimeout(overlayDisplayButton,3000)" type="submit" value="Search" /></div>
我目前更新我做了什麼,這是我用來顯示疊加什麼:
function displayOverlay(text) {
$("<table id='overlay'><tbody><tr><td>" + text + "</td></tr></tbody></table>").css({
"position": "fixed",
"top": "0px",
"left": "0px",
"width": "100%",
"height": "100%",
"background-color": "rgba(0,0,0,.6)",
"z-index": "10000",
"vertical-align": "middle",
"text-align": "center",
"color": "#fff",
"font-size": "40px",
"font-weight": "bold",
"cursor": "wait",
"overflow-y":"hidden"
}).appendTo("body");
}
function removeOverlay() {
$("#overlay").remove();
}
$(function overlayDisplayButton() {
$(".btn").click(function() {
if ($("#overlay").length > 0) {
removeOverlay();
} else {
displayOverlay("Loading...");
}
displayOverlay("Loading...");
});
});
</script>
小的變化對我做了什麼
$(function overlayDisplayButton() {
$("#submit").click(function() {
if ($("#overlay").length > 0) {
removeOverlay();
} else {
displayOverlay("Loading...")
}
});
});
,我還是不明白怎麼做回調,當數據被檢索並顯示在屏幕上,以便覆蓋消失
任何幫助將不勝感激。 謝謝
您是否將html附加到輸入? – epascarello
@epascarello是的。如果是這樣,我做錯了的方式是什麼? –
投入沒有孩子,所以你不應該將它追加到輸入 – epascarello