关于.append()和.empty()的问题
Problems on .append() and .empty()
我有下面的代码,如果#test按钮被点击,一个内容将在#currentActivities中生成。还有一个#hide按钮,用来隐藏#currentActivities的内容。我的问题是,如果我第一次点击#test,我可以得到的内容。当我点击#hide, #currentActivities的内容可以被隐藏。但是,如果我再次单击#test,则无法生成内容。我一开始就尝试添加$('#currentActivities').empty();
,但似乎不起作用。有人能帮我指出我的问题吗?
$("#test").click(function() {
$('#currentActivities').empty();
$.ajax({
type: "GET",
dataType: "jsonp",
jsonpCallback: "jsoncallback",
data: {
//some data here
},
url: "http://mydomain.com/check.php?jsoncallback=?",
success: function(data) {
$.each(data, function(index, student) {
$('#currentActivities').append(
'<li><a href="tutor_student_detail.html" data-name="' + data[index].data.NameA + '">' +
'<h4>' + data[index].data.NameA + '</h4>' +
'<p>' + data[index].data.NameA + '</p>' +
'</a></li>');
$("li a").click(function() {
window.localStorage["view"] = $(this).data('name');
window.localStorage["Request"] = "true";
}); //end of li a
});
$('#load2').hide();
$('#filter').show();
$('#currentActivities').listview('refresh');
},
error: function(jqXHR, textStatus) {
alert("Request failed: " + textStatus);
}
});
return false;
});
你需要使用delegate event(又名live event)。因为你正在处理一个动态加载的DOM元素。
类似:
$('body').on('click', '#test', function() {
// all code belong to click handler
});
有关使用.on()
绑定委托事件的更多信息,请参阅此处。
注意:
代替body
用户任何静态容器的所有新加载和附加的元素。
你的问题是关于移动版jquery的所以我认为对于实时事件委托你可以尝试这样做:
$('#test').live('click', function() {
// all codes belong to click hander
});
,另一种方式是:
$(document).delegate('#test', 'click', function() {
// codes
});
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 将PHP变量传递给jQuery时遇到问题
- Canvas Html5绘图应用程序,移动画布会导致重大问题
- 参数变量出现ngTable指令问题
- 剑道网格jQuery动画()问题
- 我的jQuery插件参数没有正确启动,遇到了问题
- Phonegap-(安卓/iphone)多个图像的图像库出现问题
- TableExport jquery插件:文件名和扩展名问题
- JavaScript Pub/Sub属性访问问题
- JavaScript异步问题
- 如何解决Yii中的页面刷新问题
- Safari(Mac OS)上的jQuery平滑滚动问题
- jqGrid树网格问题
- 使用正则表达式评估电子邮件地址时出现性能问题
- 如何消除代码中的未定义和其他问题
- JavaScript代码问题:我正在将对象转换为数组
- 三星智能电视应用程序;Brightcove示例应用程序远程控制问题
- 由于iframe导致的问题
- ReactJS和SpringDataRest缓存问题可能与websocket有关
- 关于.append()和.empty()的问题