0

我可以在 javascript 中清除事件队列吗?当我完成一个单击事件然后执行另一个单击事件时,即使输入字段具有类似“newfile.jpg”的值,输入字段也会获得未定义的值

我通过执行 somevariable = $('#cke_104_textInput').val(); 来检索值 但 somevariable 的值未定义。

这是javascript代码:

$(function () {
    // Handler for .ready() called.
    function changeLink() {
        link = $('#cke_104_textInput').val();
        if (link == "") {}
        else {
            link = link.replace("_", "/");
            parts = link.split('.');
            explodeExtension = parts[parts.length - 1];
            link = link.replace("/download/", "/download/" + explodeExtension + "/");
            link = link.replace("." + explodeExtension, "");
            $('#cke_104_textInput').val('');
            $('#cke_104_textInput').val(link);
            clearInterval(changelink);
        }
    }

    function changePic() {
        link = $('#cke_103_textInput').val();
        if (link == "") {}
        else {
            link = link.replace("_", "/");
            parts = link.split('.');
            explodeExtension = parts[parts.length - 1];
            link = link.replace("/download/", "/show/" + explodeExtension + "/");
            link = link.replace("." + explodeExtension, "");
            $('#cke_103_textInput').val('');
            $('#cke_103_textInput').val(link);
            clearInterval(changepic);
        }
    }
    $('#cke_60').live('click', function (event) {
        changelink = setInterval(function () {
            changeLink()
        }, 1000);
    });
    $('#cke_64').live('click', function (event) {
        changepic = setInterval(function () {
            changePic()
        }, 1000);
    });
});

在代码中,我尝试重写两个输入字段的内容。必须这样做,因为文件不在站点根目录中,它们不在站点根目录中,并且为了能够在站点上显示或下载它们,URL 需要采用特定格式。

4

2 回答 2

0

要回答您的第一行问题,是的,您可以。看看unbind()

于 2012-07-06T13:31:10.563 回答
0

您正在创建link为全局变量,这意味着它与自身发生冲突。

更改link = $('#cke_104_textInput').val();var link = $('#cke_104_textInput').val();

另外作为旁注,您有两次此代码:

$('#cke_104_textInput').val('');
$('#cke_104_textInput').val(link);

这是多余的和低效的。在这两种情况下,您都应该删除第一行,因为选择一个元素(甚至通过 ID)不是一个免费的操作。

于 2012-07-06T13:33:10.253 回答