将事件添加到html元素

马球

我有这个问题,我需要向特定的html元素添加onmousedownonselectstart事件。我已经尝试过了,但是因为它们不是属性,所以这是行不通的。

$(".question, p, b, span, img").each(function(){ 
   $(this).addClass("disableSelection");
   $(this).attr("onmousedown", "return false;");
   $(this).attr('onselectstart', 'return false;');
});

有任何想法吗?

例子

<p onmousedown="return false;" onselectstart="return false;">Adding events</p>
罗里·麦克罗森(Rory McCrossan)

您应该使用JS添加事件处理程序,而不是使用过时的on*事件属性。也无需遍历所有元素。试试这个:

$(".question, p, b, span, img")
    .addClass('disableSelection');
    .on('mousedown selectstart', function() {
        return false;
    });

请注意,通过return false在事件处理程序中使用,您还将停止传播。如果有问题,可以使用preventDefault()传递给事件处理程序的事件方法。

另外,如果要删除已经附加到这些事件的任何事件处理程序,则最好使用off()方法来提供服务,例如.off('mousedown selectstart');

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章