小编Ons*_*aru的帖子

如何在javascript中模拟鼠标点击时设置目标属性?

我想在我的javascript代码中使用dojo来模拟鼠标点击.使用带有"ondijitclick"的dojo-stuff注册真正鼠标点击的动作.

我知道调用哪个方法/函数,我也有dijit对象来调用这个方法.该方法需要一个函数对象作为参数,所以我正在创建一个新的MouseEvent对象.这一切都很好,除了我需要设置此事件的目标值,我无法弄清楚如何做到这一点.这是必需的,因为后来的异常处理正在访问target-property,我无法避免这种情况.

到目前为止我的代码:

    dojo.query(".mybutton").forEach(function (node) {
        var target = dojo.query(".myclass").parents("#" + node.id)[0];
        var event = new MouseEvent('click', {
            'view' : window,
            'bubbles': true,
            'cancelable': true
        });
        dijit.byId(node.id)._doEvent(event);
    });
Run Code Online (Sandbox Code Playgroud)

如果我添加以下行

            'target' : target,
Run Code Online (Sandbox Code Playgroud)

在MouseEvent创建中,将不会设置该属性(但所有其他属性都将设置),并且target-property将为null,但target本身不为null.

是否有可能以某种方式设置目标属性?如果有可能我想知道我做错了什么?

编辑:

我发现了一个非常脏的解决方案,其中包括来自底层框架的小部件中的最小但不期望的更改.

我只能实现relatedTarget属性设置,而target仍然是null.如果检查target属性为null,并且如果它为null,则relatedTarget在widgets方法中,一切都按预期工作.模拟的点击和真正的点击都正常工作.

这个解决方案的唯一问题是我必须修改框架中的小部件.这是我们在发布版本中不会做的事情.这是一种可能的解决方案,但实际上这种解决方案对我们来说是不可接受的.

因此,仍然存在如何target使用正确的值设置属性的问题.正如解决方案在genereal中所显示的那样,除了设置target属性外,它都可以工

我无法看到这是通过Ferry Kranenburg提出的解决方案实现的.如果这个解决方案能够满足我的需要,那么如果有人可以向我解释这个技巧,那就太好了.

javascript dojo mouseevent

5
推荐指数
1
解决办法
3545
查看次数

C# 有类似 C++ std::equal_range 的东西吗?

我一直在寻找并没有真正找到答案。说实话,我觉得网上关于这个功能的使用信息确实很少。该参考文献本身不够清晰,我无法在 C# 中找到等效的内容。

\n\n

我必须将 C++ 类移植到 C#。旧的 C++ 类曾一度使用此函数,我将其替换为使用Where() 的 LinQ 用法,该函数由可枚举对象提供:

\n\n
std::equal_range(it_begin, it_end, value, comparer)\n//changes to\nlist.Where(/*some comparison using the same comparison logic and the value like C++ version*/)\n
Run Code Online (Sandbox Code Playgroud)\n\n

不幸的是,我没有得到与原始代码相同的范围。所以我想知道我是否用正确的等效方法替换了 C++ 方法,或者我的比较代码中是否存在一些逻辑错误。

\n\n

那么 C# 中 std::equal_range 的正确等效项是什么?我的解决方案是正确的还是完全不同的等效方案?

\n\n

编辑:

\n\n

感谢您对 C++ 函数说些什么的提示。

\n\n

首先是文档

\n\n

毕竟,据我了解,我返回一个列表范围,其中包含与给定值类似的所有值。用户可以提供一个比较器,我不完全确定它的用途:\n - 将列表中的值与给定值进行比较?\n - 比较排序结果?

\n\n

编辑2:

\n\n

我的不同结果的原因在于其他地方。因此,考虑到复杂性标准,我接受了马修斯的回答。尽管考虑到结果,所有 3 个解决方案(Matthews、Ren\xc3\xa9s 和我的)都提供了相同的结果。因此,如果性能并不重要和/或希望减少代码,也许其他解决方案之一适合您。

\n

c# c++

4
推荐指数
1
解决办法
671
查看次数

标签 统计

c# ×1

c++ ×1

dojo ×1

javascript ×1

mouseevent ×1