我使用live('click ...使用jQuery v1.8.3但它有效,但我意识到live从第1.7节开始被删除,我应该改为on('click
现在,当用户点击链接时,它什么都不做,下面是jquery / js的副本
仅当您单击a.view_subscriptions链接时才有效。
感谢任何帮助。
$(document).ready(function() {
function get_month()
{
var u = $("#days_for_month_url").attr("href");
var form_data = {
ajax : '1'
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
$('#display-month').html(msg);
} // end success
}); // end ajax
return false;
}
get_month();
$("a.view_events").on('click', function(e) {
e.preventDefault();
var date = $(this).data('date');
// change if URL changes
var u = $("#events_for_day_url").attr("href");
var form_data = {
year : $(this).data('year'),
month : $(this).data('month'),
day : $(this).data('day'),
date : $(this).data('date'),
ajax : '1'
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
$('#display-events').html(msg);
$('#display-event_detail').html('');
} // end success
}); // end ajax
return false;
}); // end on.click view-events
$("a.view_event_details").on('click', function(e) {
e.preventDefault();
var u = $("#event_detail_url").attr("href");
var form_data = {
event_id : $(this).data('event_id'),
ajax : '1'
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
$('#display-event_detail').html(msg);
$('#display-events').html('');
} // end success
}); // end ajax
return false;
}); // end on.click view_event_details
$("a.month_link").on('click', function(e) {
e.preventDefault();
$('#display-events').html('');
var u = $("#days_for_month_url").attr("href");
var form_data = {
month_url : $(this).data('month_url'),
ajax : '1'
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
$('#display-month').html(msg);
} // end success
}); // end ajax
return false;
}); // end on.click view-month
$("a.view_subscriptions").on('click', function(e) {
e.preventDefault();
var u = $("#subscriptions_url").attr("href");
var form_data = {
ajax : '1'
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
$('#display-subscriptions').html(msg);
//$('#display-subscriptions').toggle();
} // end success
}); // end ajax
return false;
}); // end on.click view-subscriptions
$("#update_subscriptions").on('click', function(e) {
e.preventDefault();
var u = $("#update_subscriptions_url").attr("href");
var vals = []
$('input:checkbox[name="calendar[]"]').each(function() {
if (this.checked) {
vals.push(this.value);
}
});
var form_data = {
ajax : '1',
calendar: vals,
};
$.ajax({
type: 'POST',
dataType: 'html',
url: u,
data: form_data,
success: function( msg ) {
get_month();
$('#display-subscriptions-update').html(msg).fadeOut(6000);
$('#display-subscriptions').html('');
} // end success
}); // end ajax
return false;
}); // end on.click view-subscriptions
}); // end document ready
答案 0 :(得分:7)
这不仅仅是对函数名称的更改。绑定是立即的,仅涉及绑定时jQuery集中的元素。作为参数传递动态元素的选择器。
而不是
$("a.view_events").on('click', function(e) {
使用
$(document).on('click', "a.view_events", function(e) {
(或者更好的是,将[{1}}替换为调用该函数时存在的元素,并保留document
个元素)