两个同步事件

时间:2016-01-30 22:06:25

标签: javascript jquery events

我在此页面上使用了JS代码{{3}} 当我按下十字标志时,会发生2个事件(模糊和点击),但只有模糊代码运行。我需要反对,点击交叉代码。 我怎么能这样做?

$(function(){clickOnLink();});
    function clickOnLink(){
        $("span.link").on({
            click: function(){
        var linkId = $(this).text().replace(/\D+/g,"");
        var id = $(this).attr("id");
        var idNum = $(this).attr("id").replace(/\D+/g,"");
        var idType = "link_"+$(this).attr("id").replace(/\d+/g,"");
        var result = "<span class='link'>Переход на link</span> <input     type='text' id='"+id+"' value='"+linkId+"'> <span><span class='plus'>+</span><span    class='cross'>✘</span></span>";
        $(this).replaceWith(function(index, oldHTML){
        return result;
        });
        $("input").focus();
        clickOnCross();
        blurOnInput();
        }
    });
};
function clickOnCross(){
$("span.cross").on({
    click: function(){
        $(this).remove();
     }
});
};
function blurOnInput(){
$("input").on({
    blur: function(){
        $(this).prev().remove();
        $(this).next().remove();
        var idName = $(this).attr("id");
        var idNum = $(this).attr("id").replace(/\D+/g,"");
        var idType = "link_"+$(this).attr("id").replace(/\d+/g,"");
        $(this).replaceWith(function(index, newHTML){
        var linkId = $(this).val();
        var linkIdDb = "link"+$(this).val();
        $.get("handlers/send_link.php", { 
            id: idNum, 
            ans: idType,
            linkid: linkIdDb }
        );
        var result = "<span class='link' id='"+idName+"'>Переход на link"+linkId+". <a href='#link"+linkId+"'>⇗</a></span>";
        return result;
        });       
        clickOnLink();
    }
});
};

1 个答案:

答案 0 :(得分:0)

您移除blur事件上的十字架,该事件在mousedown上触发,在调用click事件之前,以及您希望触发click事件的时间,cross中没有DOM元素。

如果您想在十字标志的click事件上绑定某些内容,请不要在DOM事件的blur事件中将其从input移除} field。