如何在jQuery中进行“反向防止默认”?

时间:2012-09-12 00:48:06

标签: javascript jquery events javascript-events preventdefault

Private Logistics: Privacy-Sensitive Calendar, Todo, and Personal Information Management中,输入的数据可以通过点击进行编辑,并且支持输入链接为< a href =“...或输入将被链接的URL。

这很有效,但当有人点击链接时会出现问题。所需的行为是链接打开而不是将文本片段置于编辑模式,这与'event.preventDefault()'或'... return false;}'实现的通常模式相反。 (元素上链接外的点击应该将包含元素置于编辑模式,与没有链接的容器相同。)

如何使用jQuery反转更常见的模式 ?我现在最好的猜测是尝试对事件目标进行内省,看看它是否是一个锚点。但那只是最好的猜测;我已经看到了大量的模式示例,这些示例将取消链接加载另一个页面,但执行添加的Ajax功能,将容器置于编辑模式;我不确定我是否已经看到了该链接后面的模式的反转而没有将容器置于编辑模式。

我也看到了一种通过在同一页面中加载链接来避开此事的方法,但是如果实施等存在棘手的问题,那就是我更愿意采用的那种解决方案。

2 个答案:

答案 0 :(得分:0)

一般来说,你不想清理你的大笔画,而是不要做那么宽的笔画。在运行if之前使用e.preventDefault()语句。

类似的东西:

var preventedLinks = $('a.preventthislink');
$('a').click(function(e){
    if ($(this).index(preventedLinks) != -1) {
       e.preventDefault();
    }
});

答案 1 :(得分:0)

你也可以改变你要阻止默认的任何类:

$(document).ready(function(){
    $('.blue').removeClass('blue').addClass('green');
});