jQuery复选框和span共享一个单击事件
jQuery checkbox and span that share a click event
所以我有一个复选框和一个span
<input type="checkbox" class="checker"> <span class="something">Label</span>
从中,跨度已经有了一些基于点击它的功能,我正在为视觉辅助的等式添加一个复选框。我想做的是,当复选框被选中/取消选中时,我希望它触发已经存在的跨度单击功能。这是我能做的。
我还希望span上的相同单击功能选中/取消选中旁边的复选框,同时继续其基本功能。这一点我也能做到。
问题似乎是,当我在剧本中有两个逻辑时,其中一个总是X出另一个,留下一个工作,另一个不工作。所以我正在努力想办法让这件事和谐地进行,显然我当时有一些跳出框框思考的问题,需要一些帮助。
这是我目前尝试使用的JS
$('.checker').live('click', function(e){e.preventDefault();$(this).siblings('.something').trigger('click');});
$('.something').live('click', function(e)
{
e.preventDefault();
if($(this).siblings('.checker').is(':checked'))
{
$(this).siblings('.checker').attr('checked', false);
}
else
{
$(this).siblings('.checker').attr('checked', true);
}
});
请使用Label
标签
<li class="contact">
<input id='input1' type="checkbox" class="checkbox" name="checkableitems[]" value="1333">
<label for='input1'>Baby James</label>
</li>
http://jsfiddle.net/xgB5X/5/
如果你仍然想要你的风格,那么请参考这把小提琴。
$('.something').on('click', function() {
var chk_box = $(this).prev();
var chk_status = !(chk_box.is(':checked'));
chk_box.attr('checked', chk_status);
});
http://jsfiddle.net/xgB5X/10/
首先使用label
元素将确保您的元素根据需要链接在一起,因为如果元素不需要任何其他特殊操作,则此解决方案将不需要与JavaScript或jQuery进行任何交互。
避免使用live()
,选择使用on()
(>=v1.7)或delegate()
(<v1.7)。
HTML:
<input type="checkbox" class="checker" id="check1"> <label for="check1">Label 1</label>
<input type="checkbox" class="checker" id="check2"> <label for="check2">Label 2</label>
<input type="checkbox" class="checker" id="check3"> <label for="check3">Label 3</label>
<input type="checkbox" class="checker" id="check4"> <label for="check4">Label 4</label>
jQuery:
$('.checker').each(function(){
$(this).on('change', function(){
$('.checker').not('#' + this.id).attr('checked', false);
});
});
演示:http://jsfiddle.net/EWK4M/
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- 单击更改图标并通过javascript添加一个css类
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 复选框:一次只允许单击一个复选框
- 如何创建一个表并在单击按钮时插入此标签和文本字段
- 单击转盘按钮后重定向到另一个页面
- 如何在单击按钮时显示一个分区,同时隐藏另一个分区
- 在单击下一个按钮之前,在JavaScript代码中添加5秒的延迟
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 为什么在模糊事件处理程序中添加setTimeout会修复“;掩蔽”;另一个单击处理程序的
- jQuery复选框和span共享一个单击事件
- 通过它查询谷歌地图上已经存在的标记's的lat和long,并以编程方式在其上触发一个单击事件
- 在开发元素被确认后,在开发元素下方保留一个单击按钮
- 一个.单击函数在 jQuery 中不起作用
- $('html').单击一个又一个单击事件
- 如何仅在前一个单击完成时执行下一个单击
- 如何将单击事件绑定到另一个单击元素中的元素
- 单击另一个单击事件中的定位标记