Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Left button x和y位置。扫雷舰式_Left Button_Jquery_Positioning - Fatal编程技术网

Left button x和y位置。扫雷舰式

Left button x和y位置。扫雷舰式,left-button,jquery,positioning,Left Button,Jquery,Positioning,当我用鼠标点击时,它的工作原理应该如下图所示 但是,我的代码正在这样做 我举了一个例子(见下面的小提琴)。如图所示,我目前的问题是: 上面和下面的所有内容(不仅仅是第一行)也在变化。 在我的小提琴示例中,我使用.css('background-color','red')来测试它 我在这两篇文章中收集了信息 不知道你想要什么,但试试这个: $.expr[':'].xy = function (obj, index, meta, stack) { var xy = meta[3]

当我用鼠标点击时,它的工作原理应该如下图所示

但是,我的代码正在这样做

我举了一个例子(见下面的小提琴)。如图所示,我目前的问题是:

上面和下面的所有内容(不仅仅是第一行)也在变化。

在我的小提琴示例中,我使用
.css('background-color','red')
来测试它

我在这两篇文章中收集了信息


不知道你想要什么,但试试这个:

$.expr[':'].xy = function (obj, index, meta, stack) {
    var xy = meta[3].split(',');
    var x = xy[0];
    var y = xy[1];
    var el = $(obj);
    var el_offset = el.offset();
    return el_offset.left == y && (el_offset.top-el.height() == x || el_offset.top+el.height() == x);
}

更新:

嗯,您可以像这样选择所有这些:

$.expr[':'].xy = function (obj, index, meta, stack) {
    var xy = meta[3].split(',');
    var y = xy[0];
    var x = xy[1];
    var el = $(obj);
    var el_offset = el.offset();
    // check for top and bottom 3 blocks
    if ((el_offset.top-el.height() == y || el_offset.top+el.height() == y) &&  (el_offset.left+el.width() == x || el_offset.left == x || el_offset.left-el.width() == x))
        return true;
    // left and right
    else if (el_offset.top == y && (el_offset.left+el.width() == x || el_offset.left-el.width() == x))
        return true;

    return false;
}
$(document).ready(function myfunction() {

    $('.content').on("click", function () {
        var obj_left = $(this).offset().left;
        var obj_top = $(this).offset().top;

        $('#wrap').find('.content:xy(' + obj_top + ',' + obj_left + ')').css('background-color', 'red');
    });

});
然后像这样做:

$.expr[':'].xy = function (obj, index, meta, stack) {
    var xy = meta[3].split(',');
    var y = xy[0];
    var x = xy[1];
    var el = $(obj);
    var el_offset = el.offset();
    // check for top and bottom 3 blocks
    if ((el_offset.top-el.height() == y || el_offset.top+el.height() == y) &&  (el_offset.left+el.width() == x || el_offset.left == x || el_offset.left-el.width() == x))
        return true;
    // left and right
    else if (el_offset.top == y && (el_offset.left+el.width() == x || el_offset.left-el.width() == x))
        return true;

    return false;
}
$(document).ready(function myfunction() {

    $('.content').on("click", function () {
        var obj_left = $(this).offset().left;
        var obj_top = $(this).offset().top;

        $('#wrap').find('.content:xy(' + obj_top + ',' + obj_left + ')').css('background-color', 'red');
    });

});

你的问题是什么?你被困在哪里了?同时左键+右键点击不是最好的设计理念。例如,Mac笔记本电脑用户将很难做到这一点,我相信还有很多其他人也会遇到同样的困难。谢谢你的回复,如果我能表达我的意愿,我会感到抱歉。当我试图说@MichaelPetrotta时,我只需要点击周围的近div。但是现在我得到的是点击上方的所有div(不仅仅是第一行)和点击下方的所有div(不仅仅是第一行)@Radu抱歉,正如我所说,左+右是来自扫雷舰,而不是我的示例。在我的例子中,这只是一次普通的点击。@MichaelPetrotta,+Radu,我对问题做了一些修改,以使问题更清楚。我希望这能澄清我的问题。谢谢你的回答。我查了你的例子,这就是我想要的。真的感谢你的补充,我删除了评论中的那个额外问题,因为它不是原始问题的一部分,我对它有点滥用。但真的很感谢你的补充=)