右键单击HTML onClick不会触发

时间:2015-08-12 07:18:13

标签: javascript html events mouseevent

我已经读到这在某些浏览器中存在问题,但我仍在寻找合适的解决方案。

到目前为止我的想法:

我可以使用onmousedown/onmouseup事件来区分鼠标左键和右键。因为无论按下哪个按钮都会调用这些事件。

问题是,如果按钮被推送并释放在同一对象上方,我只想触发 onRightClick 事件。如果在对象上方按下鼠标按钮并释放其他位置(反之亦然),则不会。

是否有任何不需要复杂代码的变通方法?比如在onmousedown中的全局变量中保存被点击的对象,并将其与触发onmouseup的对象进行比较。这似乎是不必要的复杂。

编辑:我忘了提到我正在使用JavaFX Webview,它似乎不支持我需要使用的SVG-Elements上的oncontextmenu事件。

2 个答案:

答案 0 :(得分:2)

您可以附加所需元素的“contextmenu”事件侦听器。执行代码时返回false以防止出现标准上下文菜单。

def full_clean(self):
    """
    Cleans all of self.data and populates self._errors and
    self.cleaned_data.
    """
    self._errors = ErrorDict()
    if not self.is_bound:  # Stop further processing.
        return
    self.cleaned_data = {}
    # If the form is permitted to be empty, and none of the form data has
    # changed from the initial data, short circuit any validation.
    if self.empty_permitted and not self.has_changed():
        return

    self._clean_fields()
    self._clean_form()
    self._post_clean()

您还必须在内部调用的函数中返回false。

element.addEventListener('contextmenu', function(event) {
    event.preventDefault();
    Foo();
    return false;
}, false);

答案 1 :(得分:0)

您可以将带有setContentView参数的mousedown事件与outerHTML属性一起使用。这是一个演示:

http://jsfiddle.net/qjffdptq/

您可以根据需要进行修改。希望这会有所帮助。