我正在尝试制作一个 jquery 脚本,如果单击复选框,则值将附加到 div 中,如果要从 div 中删除值,则可以单击它并显示带有选定复选框的灯箱。
这是 html 标记
这是灯箱
这是通向灯箱的 div
<div id="fasta_reader" class="hidden" style="height: 500px; width: 200px; border:2px solid #000000;">
<div id="test_boxes">
<input type="checkbox" name="vehicle" class="checkers" value="Bike">I have a bike<br>
<input type="checkbox" name="vehicle" class="checkers" value="Car">I have a car <br>
<input type="checkbox" name="vehicle" class="checkers" value="gel">I have a gel <br>
<input type="checkbox" name="vehicle" class="checkers" value="gol">I have a gol<br>
<input type="checkbox" name="vehicle" class="checkers" value="feet">I have a feet<br>
<input type="checkbox" name="vehicle" class="checkers" value="hand">I have a hand <br>
<input type="checkbox" name="vehicle" class="checkers" value="ear">I have a ear<br>
<input type="checkbox" name="vehicle" class="checkers" value="nose">I have a nose <br>
</div>
第一个事件,即'.checkers' onclick 发送/删除 div 值工作正常。第二个事件 div onclick 启动灯箱也在工作
这是第一个事件的 jquery
$(document).ready(function(){
$('.checkers').click(function(){
if (this.checked)
{
var div_val = $.trim($("#fasta_reader").text());
var check_val = $(this).val();
var box_val = '<span class="box_breaks"><input type="checkbox"class="lightbox_checkbox" name="lightbox_val" id='+check_val+'_checkbox'+' value='+check_val+'>'+check_val+'</input></span>';
var div_class = $("#fasta_reader").attr("class");
if(div_val == "" && div_class == "hidden")
{
var new_val = div_val + check_val;
$("#fasta_reader").removeClass("hidden");
$("#fasta_reader").append(new_val);
}
else if(div_val != "" && div_class != "hidden")
{
var new_val = " "+check_val;
$("#fasta_reader").append(new_val);
}
$('.box').append(box_val);
$("#"+check_val+"_checkbox").prop('checked',true);
}
else if(!(this.checked))
{
var check_val = $(this).val();
var div_val_index = $.trim($("#fasta_reader").text()).indexOf(check_val);
var div_val = $.trim($("#fasta_reader").text());
var box_id = "#"+check_val+'_checkbox';
$(box_id).parent('span').remove();
if(div_val_index > 0)
{
var new_val = div_val.replace(" "+check_val, "");
$("#fasta_reader").text(new_val);
}
else
{
div_val = div_val.replace(check_val, "");
$("#fasta_reader").text(div_val);
}
}
if(div_val == "" && div_class != "hidden")
{
$("#fasta_reader").addClass("hidden");
}
});
});
这是灯箱 onclick 事件处理程序的代码
$(document).ready(function(){
$('.lightbox_checkbox').click(function(){
alert("HEHE");
if(!(this.checked))
{
$("#test_boxes input:checkbox[value="+this_val+"]").attr("checked", false);
}
else if(this.checked)
{
$("#test_boxes input:checkbox[value="+this_val+"]").attr("checked", true);
}
});
});
这是不工作的事件我尝试将文档准备好更改为 .lightbox_checkbox 加载功能,但它没有工作,
我也删除了 if else 语句,但警报不会启动。为什么警报语句没有触发?
我还发现我使用 jquery 所做的 html 插入实际上都没有出现在我页面的源代码中
那么是否有可能由于内容在物理上不存在,代码无法工作?
我问是因为 html 插入,即 lightbox 和 #fasta_reader 都是通过单击页面的物理内容来加载的。所以实际上这两个元素在视觉上是相互链接的,但在物理上链接到页面上的内容。
请告知我在这方面是否正确,以及使该过程正常工作的可能解决方案是什么,即 jquery 生成的灯箱复选框 onclick 启动事件