问题:我希望我的搜索框(HTML表单)的提交按钮在用户点击文本输入框之前是隐藏的。
HTML:
HTML:
<div class="views-exposed-form">
<div class="views-exposed-widgets clearfix">
<div id="edit-search-api-views-fulltext-wrapper" class="views-exposed-widget views-widget-filter-search_api_views_fulltext">
<div class="views-widget">
<div class="form-item form-type-textfield form-item-search-api-views-fulltext">
<input placeholder="Search" type="text" id="edit-search-api-views-fulltext" name="search_api_views_fulltext" value="" size="26" maxlength="128" class="form-text">
</div>
</div>
</div>
<div class="views-exposed-widget views-submit-button">
<input type="submit" id="edit-submit-display-products" name="" value="Apply" class="form-submit">
</div>
</div>
</div>
我尝试过的方法 我知道在处理CSS时可以使用一些条件。像这样: how-to-affect-other-elements-when-a-div-is-hovered
我的问题现在是我的元素不是直接嵌套在彼此之内的。我已经尝试过一些方法,比如当悬停在包装器div上时显示按钮。
它被隐藏起来:
#block-views-exp-display-products-page .views-submit-button {
visibility: hidden;
}
现在我需要的是这样的东西:
#edit-search-api-views-fulltext:focus (operator) #block-views-exp-display-products-page .views-submit-button {
visibility: visible;
}
但是我不知道如何做到这一点。
编辑:
如果有人遇到这个问题,这是我的最终解决方案:
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(document).ready(function() {
$("#edit-search-api-views-fulltext").on('click', function(){
$("#edit-submit-display-products").css("visibility", "visible");
});
});
</script>
<script>
$(document).ready(function() {
$("#edit-search-api-views-fulltext").on('focusout', function(){
if (!$("#edit-submit-display-products").is(":hover")) {
$("#edit-submit-display-products").css("visibility", "hidden");
}
});
});
</script>
当你在输入框外部单击时,这将隐藏按钮,并防止在尝试单击按钮时使其消失。
onclick
,触发一个JS函数来改变搜索框的可见性。 - Mitchell van Zuylen