Javascript 单击事件不';不要在元件上点火

Javascript 单击事件不';不要在元件上点火,javascript,jquery,windows-8,winjs,windows-8.1,Javascript,Jquery,Windows 8,Winjs,Windows 8.1,我正在用WinJS构建一个Windows8.1商店应用程序。当用户查询时,一些搜索结果会显示在内容标签中 我想向.searchresults类添加一个事件处理程序。我已经做了以下工作: $('.searchresults').on('click', function() { console.log("clicked"); }); 即使没有.on() 然而,事件从未被触发。我已经设置了一个断点,所以我可以看到它何时触发——但这从未发生过 我尝试通过WinJS方式添加事件处理程序: Microso

我正在用WinJS构建一个Windows8.1商店应用程序。当用户查询时,一些搜索结果会显示在内容标签中

我想向
.searchresults
类添加一个事件处理程序。我已经做了以下工作:

$('.searchresults').on('click', function() {
console.log("clicked");
});
即使没有
.on()

然而,事件从未被触发。我已经设置了一个断点,所以我可以看到它何时触发——但这从未发生过

我尝试通过WinJS方式添加事件处理程序:

Microsoft.Maps.Events.addHandler(document.getElementsByClassName("searchresults"), 'click', myfunc);
没有成功


知道为什么会发生这种情况吗?

我猜您在尝试安装事件处理程序(动态内容的常见问题)后,正在创建

内容对象。这不适用于正常的事件处理,因为当您尝试将事件处理程序添加到DOM对象时,它不存在

如果是这种情况,则需要使用如下委托事件处理:

$(document.body).on('click', '.searchresults', function() {
    console.log("clicked");
});
这将允许您随时动态创建searchresults内容,事件处理程序仍将通过事件委派(事件传播到其父级)触发


您尚未在搜索结果内容周围显示HTML,但实现此操作的最佳方法是选择与搜索结果最接近的静态父级(不是动态创建的父级,并且在附加事件处理程序时已存在),然后将事件附加到该父级:

$(closest static parent selector).on('click', '.searchresults', function() {
    console.log("clicked");
});

在尝试安装事件处理程序(动态内容的常见问题)之后,我猜您正在创建

content

对象。这不适用于正常的事件处理,因为当您尝试将事件处理程序添加到DOM对象时,它不存在

如果是这种情况,则需要使用如下委托事件处理:

$(document.body).on('click', '.searchresults', function() {
    console.log("clicked");
});
这将允许您随时动态创建searchresults内容,事件处理程序仍将通过事件委派(事件传播到其父级)触发


您尚未在搜索结果内容周围显示HTML,但实现此操作的最佳方法是选择与搜索结果最接近的静态父级(不是动态创建的父级,并且在附加事件处理程序时已存在),然后将事件附加到该父级:

$(closest static parent selector).on('click', '.searchresults', function() {
    console.log("clicked");
});

在尝试安装事件处理程序(动态内容的常见问题)之后,我猜您正在创建

content

对象。这不适用于正常的事件处理,因为当您尝试将事件处理程序添加到DOM对象时,它不存在

如果是这种情况,则需要使用如下委托事件处理:

$(document.body).on('click', '.searchresults', function() {
    console.log("clicked");
});
这将允许您随时动态创建searchresults内容,事件处理程序仍将通过事件委派(事件传播到其父级)触发


您尚未在搜索结果内容周围显示HTML,但实现此操作的最佳方法是选择与搜索结果最接近的静态父级(不是动态创建的父级,并且在附加事件处理程序时已存在),然后将事件附加到该父级:

$(closest static parent selector).on('click', '.searchresults', function() {
    console.log("clicked");
});

在尝试安装事件处理程序(动态内容的常见问题)之后,我猜您正在创建

content

对象。这不适用于正常的事件处理,因为当您尝试将事件处理程序添加到DOM对象时,它不存在

如果是这种情况,则需要使用如下委托事件处理:

$(document.body).on('click', '.searchresults', function() {
    console.log("clicked");
});
这将允许您随时动态创建searchresults内容,事件处理程序仍将通过事件委派(事件传播到其父级)触发


您尚未在搜索结果内容周围显示HTML,但实现此操作的最佳方法是选择与搜索结果最接近的静态父级(不是动态创建的父级,并且在附加事件处理程序时已存在),然后将事件附加到该父级:

$(closest static parent selector).on('click', '.searchresults', function() {
    console.log("clicked");
});