简体   繁体   English

单选按钮在页面加载时在父元素上显示/隐藏

[英]Radio button Show/Hide on parent element on page load

In the below code, show/hide is not happening on page reload.在下面的代码中,页面重新加载时不会发生显示/隐藏。 If I check another radio button after page reloading, it's working.如果我在页面重新加载后检查另一个单选按钮,它就可以工作。 Help me to resolve the same.帮我解决同样的问题。

 $(window).load(function(){ $("[name=image_type]").on("change",imageTypeToggle); }) function imageTypeToggle(){ let selectedValue, $showElements, $hideElements; selectedValue = $(this).val(); $hideElements = $(this).parents(".image_video_sec").find(".image_sec, .video_sec"); $hideElements.hide().find("input").attr('disabled',true); if(selectedValue == "0") { $showElements = $(this).parents(".image_video_sec").find(".image_sec"); } else if(selectedValue == "1") { $showElements = $(this).parents(".image_video_sec").find(".video_sec"); } $showElements.show().find("input").attr('disabled',false); };
 <div class="image_video_sec"> <label class="on"> <input type="radio" name="image_type" value="0" checked>R1 </label> <label> <input type="radio" name="image_type" value="1">R1 </label> <dl class="image_sec">Image</dl> <dl class="video_sec">Video</dl> </div> <div class="image_video_sec"> <label class="on"> <input type="radio" name="image_type" value="0" checked>R1 </label> <label> <input type="radio" name="image_type" value="1">R1 </label> <dl class="image_sec">Image</dl> <dl class="video_sec">Video</dl> </div>

One way to do it is to trigger a click on the radio button when the document loads.一种方法是在文档加载时触发对单选按钮的单击。 (I changed your $(window).load (which was throwing an error) to $(document).ready . (我将您的$(window).load (抛出错误)更改$(document).ready

$("[name=image_type]").eq(0).trigger('click')

 $(document).ready(function() { $("[name=image_type]").on("change", imageTypeToggle); $(".image_video_sec").each(function() { $(this).find("[name=image_type]").eq(0).trigger('click') }) }) function imageTypeToggle() { let selectedValue, $showElements, $hideElements; selectedValue = $(this).val(); $hideElements = $(this).parents(".image_video_sec").find(".image_sec, .video_sec"); $hideElements.hide().find("input").attr('disabled', true); if (selectedValue == "0") { $showElements = $(this).parents(".image_video_sec").find(".image_sec"); } else if (selectedValue == "1") { $showElements = $(this).parents(".image_video_sec").find(".video_sec"); } $showElements.show().find("input").attr('disabled', false); };
 .image_sec, .video_sec { display: none; }
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="image_video_sec"> <label class="on"> <input type="radio" name="image_type" value="0" checked>R1 </label> <label> <input type="radio" name="image_type" value="1">R1 </label> <dl class="image_sec">Image</dl> <dl class="video_sec">Video</dl> </div> <div class="image_video_sec"> <label class="on"> <input type="radio" name="image_type" value="0" checked>R1 </label> <label> <input type="radio" name="image_type" value="1">R1 </label> <dl class="image_sec">Image</dl> <dl class="video_sec">Video</dl> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM