jquery:在mouseup()上解除mousebin()的问题

时间:2010-04-20 09:22:41

标签: jquery

我正在构建一个界面,用于将日历上的日期标记为已预订。用户在他们想要标记为已预订的日期“绘制”。

这是它的外观:

alt text http://i39.tinypic.com/4zyu7t.jpg

这是功能:

function load_red_paint(){
    $('td').bind('mousedown', function(){
        $(this).addClass('booked');
        $('td').bind('mouseenter', function(){
            $(this).addClass('booked');
        });
    unbind_brush();
    })  
}

function unbind_brush(){
    $('td').bind('mouseup', function(){
        $('td').unbind('mouseenter');
    });
    $('table').bind('mouseleave', function(){
        $('td').unbind('mouseenter');
    });
}

问题:

我的unbind_brush()函数效果很好,除非用户mouseup在日历之外,在这种情况下返回日历时画笔仍在“绘画”。我尝试使用这个位来解决这个问题:我对该日历的mouseleave也解除了绑定:

$('table').bind('mouseleave', function(){
    $('td').unbind('mouseenter');
});

但没有快乐,我错过了一些明显的东西吗?!!!

编辑:添加了html:

    <div class="table_wrap">
        <p class="table_title">Apr</p>
        <table cellpadding='10'>

            <tr class="col_titles">
                <td>S</td>
                <td>S</td>
                <td>M</td>
                <td>T</td>
                <td>W</td>

                <td>T</td>
                <td>F</td>
            </tr>   

            <tr>
            <td class='indent'> </td><td class='indent'> </td><td class='indent'> </td><td class='indent'> </td><td class='indent'> </td><td id='1270080000' class='past '> 01 </td><td id='1270166400' class='past '> 02 </td></tr><tr><td id='1270252800' class='past '> 03 </td><td id='1270339200' class='past '> 04 </td><td id='1270425600' class='past '> 05 </td><td id='1270512000' class='past '> 06 </td><td id='1270598400' class='past '> 07 </td><td id='1270684800' class='past '> 08 </td><td id='1270771200' class='past '> 09 </td></tr><tr><td id='1270857600' class='past '> 10 </td><td id='1270944000' class='past '> 11 </td><td id='1271030400' class='past '> 12 </td><td id='1271116800' class='past '> 13 </td><td id='1271203200' class='past '> 14 </td><td id='1271289600' class='past '> 15 </td><td id='1271376000' class='past '> 16 </td></tr><tr><td id='1271462400' class='past '> 17 </td><td id='1271548800' class='past '> 18 </td><td id='1271635200' class='past '> 19 </td><td id='1271721600' class='hand today '> 20 </td><td id='1271808000' class='hand '> 21 </td><td id='1271894400' class='hand '> 22 </td><td id='1271980800' class='hand '> 23 </td></tr><tr><td id='1272067200' class='hand '> 24 </td><td id='1272153600' class='hand '> 25 </td><td id='1272240000' class='hand '> 26 </td><td id='1272326400' class='hand '> 27 </td><td id='1272412800' class='hand '> 28 </td><td id='1272499200' class='hand '> 29 </td><td id='1272585600' class='hand '> 30 </td></tr><tr>          </tr>

        </table>

2 个答案:

答案 0 :(得分:0)

我正在测试你的代码,它运行正常。检查您是否不小心使用了缓存旧版本的代码。

答案 1 :(得分:0)

感谢kgiannakakis,让我看看剩下的代码,找出了它的重要性。

我还在其他地方解除绑定,所以事件发生了冲突......