我有一个使用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.
});
};
答案 0 :(得分:3)
点击(新功能(){
只是'功能'。
这是function expression,而不是构造函数;带有大写字母F的'new Function()'是显式的constructor version,你通常不想在每次调用时使用它来计算字符串参数,这非常令人讨厌(而且速度较慢)。
正在发生的事情是函数表达式正在创建一个新函数,然后'new'运算符使用新创建的对象this
调用它(这是new
实际上做的事情)。