javascript - 字符串替换在 jQuery 中的复选框取消选中事件中不起作用

标签 javascript jquery html

我在 javascript 替换功能中遇到了麻烦。可能有错误的地方请指出。我有一个包含“一、二、三、四”的值。取消选中复选框后,复选框值将从我的 uniqueList 值中删除。

<input type="checkbox" name="attribute" class="attribute" value="ONE"> ONE
<input type="checkbox" name="attribute" class="attribute" value="TWO"> TWO
<input type="checkbox" name="attribute" class="attribute" value="THREE"> THREE
<input type="checkbox" name="attribute" class="attribute" value="FOUR"> FOUR

Javascript 是;

var uniqueList = "ONE,TWO,THREE,FOUR";
$('.attribute').click(function() {
    var val = (this.checked ? 'checked' : 'unchecked');            
    if(val=='unchecked'){
        uniqueList =  uniqueList.replace($(this).val(),"");                       
    } 
});

alert(uniqueList);  //no uniiqueList value in alert

<强> Demo

最佳答案

由于处理程序位于声明之后,因此并不意味着它也会以相同的方式执行,因为它是一个事件处理程序,并且仅在通过代码或手动触发时才会被调用。因此您需要在代码中触发它。

var uniqueList = "ONE,TWO,THREE,FOUR";
$('.attribute').click(function() {
    var val = (this.checked ? 'checked' : 'unchecked');
    if (val == 'unchecked') {
        uniqueList = uniqueList.replace($(this).val(), "");
    }
}).trigger("click"); // triggering it invokes the handler
alert(uniqueList); // it works now

关于javascript - 字符串替换在 jQuery 中的复选框取消选中事件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26180343/

相关文章:

javascript - 将事件添加到队列头部

javascript - 在backbone.relational集合上的 'add'之后,backbone触发 'sort'事件

javascript - 加载时清空所有文本区域

html - 如何让视频在我的网站上像 youtube 一样播放? html/css(阅读更多)

javascript - Chrome 中 HTML5 视频奇怪的渲染错误

javascript - 后循环中的 JQuery onclick 函数错误

javascript - 将页面内容加载到一页(重复内容)对 SEO 不利?

javascript - if 语句内的 for 循环不会运行,我不知道为什么

ASP.NET jQuery 问题

html - 对齐 + 和 - 用于购物篮增量器