我正在尝试使用以下代码在WordPress中工作,但我无法让它工作。表单显示正确,但选择不同的选项不起作用。我无法弄清楚如何让jQuery工作。 The code itself does work.先谢谢你的帮助!
<style type="text/css">
.hide {
display: none;
}
</style>
<script type="text/javascript" src="files/jquery-1.8.1.js"></script>
<script type="text/javascript">
var $j = jQuery.noConflict();
$j("#choices").change(function(){
$j('.hide').slideUp();
$j('#'+this.value).slideDown()
});
</script>
<form>
<select id="choices">
<option value="none">Select an option...</option>
<option value="option1">Option 1</option>
<option value="option2">Option 2</option>
<option value="option3">Option 3</option>
<option value="option4">Option 4</option>
<option value="option5">Option 5</option>
<option value="option6">Option 6</option>
<option value="option7">Option 7</option>
</select>
</form>
<div id="option1" class="hide">Option 1 TEXT</div>
<div id="option2" class="hide">Option 2 TEXT</div>
<div id="option3" class="hide">Option 3 TEXT</div>
<div id="option4" class="hide">Option 4 TEXT</div>
<div id="option5" class="hide">Option 5 TEXT</div>
<div id="option6" class="hide">Option 6 TEXT</div>
<div id="option7" class="hide">Option 7 TEXT</div>
答案 0 :(得分:2)
两个受欢迎的警告。
执行脚本时DOM尚未就绪
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j("#choices").change(function(){
$j('.hide').slideUp();
$j('#'+this.value).slideDown()
});
})
您的ID可能会被使用两次。将ID更改为HTML和JS中的类。检查
console.log( $j("#choices") )
答案 1 :(得分:2)
答案 2 :(得分:1)
试试这个:
<script type="text/javascript">
var $j = jQuery.noConflict();
$j(document).ready(function() {
$j("#choices").change(function(){
$j('.hide').slideUp();
$j('#'+this.value).slideDown()
});
});
</script>
这将确保在DOM准备好之前jQuery代码不会执行。