JQuery类检查mouseup

时间:2014-03-06 12:08:47

标签: jquery drupal-7 draggable

我有以下代码在检测mousedown和mouseup时有效。 问题始于mouseup,我试图检查目标元素是否具有某个类。

if语句中的代码永远不会执行。

$(this).find('td:first a.tabledrag-handle').mousedown(
    function(){

        $(this).mouseup(
            function(){
                console.log('mouseup detected');

                $(this).parents('tr').css('background', 'red');

                if( $(this).parents('tr').hasClass('drag-previous') ){
                    console.log('Dragged');
                    $(this).parents('tr').css('background', 'blue');
                }
            }
        );
    }
);

if($(this).parents('tr')。hasClass('drag-previous'))... 代码永远不会执行。

有人可以建议更好的技术或解决这个问题吗?

更新:

我想要实现的是检测下表中的拖放事件。我需要读取拖动生成的每一行的权重,并在“自定义权重”字段中设置该数字并保存自定义权重。

enter image description here

这需要针对每一行进行,这就是为什么我会在十字准线上检测mousedown和mouseup,而不是在鼠标上或在行上检测。例如。

2 个答案:

答案 0 :(得分:0)

使用mouseenter和mouseleave事件

window.jQuery('table tr').find('td:first a.tabledrag-handle').mouseenter(function () {
    window.jQuery(this).parents('tr').css('background', 'red');
});


window.jQuery('table tr').find('td:first a.tabledrag-handle').mouseleave(function () {
    if (window.jQuery(this).parents('tr').hasClass('drag-previous')) {
        console.log('Dragged');
        window.jQuery(this).parents('tr').css('background', 'blue');
    }
});

答案 1 :(得分:0)

您可以直接绑定mouseup事件。不必放在mousedown下

$("td:first a.tabledrag-handle").mouseup(function (e) {
            $(this).parents("tr").css('background', 'red');
            if ($(this).parents("tr").hasClass('drag-previous')) {
                console.log('Dragged');
                $(this).parents('tr').css('background', 'blue');
            }
        });

DEMO

如果要检查每行中的td,请像这样更改选择器

$("tr td:first-child").mouseup(function (e) {
                $(this).parents("tr").css('background', 'red');
            if ($(this).parents("tr").hasClass('drag-previous')) {
                console.log('Dragged');
                $(this).parents('tr').css('background', 'blue');
            }
        });

UpdatedFiddle