我已经读到这在某些浏览器中存在问题,但我仍在寻找合适的解决方案。
到目前为止我的想法:
我可以使用onmousedown/onmouseup
事件来区分鼠标左键和右键。因为无论按下哪个按钮都会调用这些事件。
问题是,如果按钮被推送并释放在同一对象上方,我只想触发 onRightClick 事件。如果在对象上方按下鼠标按钮并释放其他位置(反之亦然),则不会。
是否有任何不需要复杂代码的变通方法?比如在onmousedown
中的全局变量中保存被点击的对象,并将其与触发onmouseup
的对象进行比较。这似乎是不必要的复杂。
编辑:我忘了提到我正在使用JavaFX Webview,它似乎不支持我需要使用的SVG-Elements上的oncontextmenu
事件。
答案 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属性一起使用。这是一个演示:
您可以根据需要进行修改。希望这会有所帮助。