来自已加载数据的事件处理程序问题

时间:2015-08-05 19:43:31

标签: jquery onclicklistener innerhtml

因此,在.load()之后进行交互时,我在使用事件处理程序时遇到了一些麻烦。功能已执行。

在页面上,当单击单选按钮时,回调加载内页/数据,没问题。但是,当我尝试使用内部元素的on。(click)事件时,函数会失败。所有代码都在顶级。知道事件失败的原因吗?

owners

这很好用,它可以很好地加载页面中的数据。

$('#radical input[type=radio]').on('click', function() { $('.subradical').load('../page');
});

这不起作用。

解释:"激进"处于最高水平。 " subradical"是空的,显示加载的数据(php)。 点击" subradical"中加载的数据中的li的事件应该触发抓住激光并将它们放入激进的"显示元素,但事实并非如此。我在这里没有看到的任何东西?

感谢。

编辑:

奇怪的是,当我执行这个功能时:

$('#radical .subradical li').on('click', function() {
var one = $(this).attr('id');
var two = $(this).attr('pic');
var three = $(this).attr('title');
$('#radical .display').css('background:url(../imgs/'+two+'); background-size:cover');
$('#radical .display .title').text(three);

});

警报显示。但是,当我添加LI时,它失败了。

$('#radical .subradical').on('click', function(e) {
alert('this works');});

1 个答案:

答案 0 :(得分:0)

如果我理解你的问题,我认为这可能是因为带有两个操作数的on(" click",function(){})仅适用于当时存在的对象被调用,而不是稍后创建的(在您加载的情况下)。我认为你需要使用on函数的三参数形式,并在存在的东西上调用它,如

$("#existing-container").on("click", ".selector-for-something-created-later",
   function(e){ 
     dosomething(); 
   });