将click事件绑定到jQuery的附加链接

时间:2009-09-30 22:04:54

标签: javascript jquery

我有一个使用jQuery的$ .ajax来检索数据的灯箱。

如果我没有回复数据,那么我将“找不到数据”消息附加到我的列表中,并添加一个重置搜索参数的链接。基本上我正在尝试将.click()事件添加到我附加的链接中。

问题是该功能正在立即运行,而不是等待点击事件。

因此,当我执行此操作时,短暂显示“无数据发现消息”,然后由默认结果替换。

function getImages(/* parameters ... */) {
    // other code...
    // if no results:
    $('div#imageLightBox ul.thumbList').append('<li>Sorry, no images found. <a href="#" id="clearSearchLink">Clear search</a>.</li>');
    $('a#clearSearchLink').click(new function() {
        alert("clearSearchLink");
        // code that resets the search parameters ...
        getImages('', '', $('#lightBoxPageSize').val(), 1); // <-- calls the function that contains this code.
    });
};

1 个答案:

答案 0 :(得分:3)

  

点击(新功能(){

只是'功能'。

这是function expression,而不是构造函数;带有大写字母F的'new Function()'是显式的constructor version,你通常不想在每次调用时使用它来计算字符串参数,这非常令人讨厌(而且速度较慢)。

正在发生的事情是函数表达式正在创建一个新函数,然后'new'运算符使用新创建的对象this调用它(这是new实际上做的事情)。