jQuery live span直到第二次点击才更新

时间:2011-08-10 09:40:51

标签: javascript jquery live attr

要查看此信息,请转到http://offline.raileisure.com/

在预订部分的右侧,选择车站主人房,然后选择8月15日的入住日期。然后选择4天......

现在回去选择8月29日的另一个日期。

4天应该取消选择,但直到你在其他地方再做一次点击...

我想我需要更新live attr。但不确定。

解开#spanduration我正在使用:

$('input[name="duration"]').removeAttr('checked');
$("#spanduration").attr("style", "background-position: 0px 0px;");

但是直到你在任何地方进行第二次点击它才会起作用。

2 个答案:

答案 0 :(得分:0)

也许是因为它是一个单选按钮。

尝试将其更改为复选框?

单选按钮不希望在未选中任何其他按钮时取消选中:

<input type="radio" value="0" name="duration">
<input type="radio" value="1" name="duration">
<input type="radio" value="2" name="duration">
<input type="radio" value="3" name="duration">

独立

<input type="radio" value="0" name="other_name">

另一方面,复选框互相取消选中:(注意名称就像数组一样)

<input type="checkbox" value="0" name="duration[]">
<input type="checkbox" value="1" name="duration[]">
<input type="checkbox" value="2" name="duration[]">
<input type="checkbox" value="3" name="duration[]">

独立

<input type="checkbox" value="0" name="other_name">

您可以编写类似这样的内容,以获得独立复选框的功能以及分组单选按钮的甜蜜:http://jsfiddle.net/LJJrZ/

$(document).ready(function(){
    var selector = "input[type=checkbox]";
    $(selector).click(function(event){
        var checked = $(this).is(':checked');
        if ( checked ) {
            $(selector).attr("checked", false);
            $(this).attr("checked", true);
        }
    });
});

答案 1 :(得分:0)

在输入模糊之前,更改事件不会触发文本输入。

您可以尝试在填充日期后手动模糊输入(对于辅助功能而言不是很好)。或者更好的是,在填充日期后自己手动触发更改事件。 e.g。

//...
// After date is populated
$('#date').trigger('change');
//...

请参阅此处的完整示例:http://jsfiddle.net/irama/rJGpn/

编辑:查看您的代码,看起来有机会(当您实例化datepicker时)将其插入回调函数中:

$('#date').datepicker({
    // ...
    onSelect: function (e) {
        // ...

        $('#date').trigger('change');
    }
    // ...

告诉我们您的情况!