javascript/AJAX 无法在 safari 中工作 不会冒泡到 body
javascript/AJAX not working in safari not bubbling through to body
我有一个 php/javascript/ajax 代码,可以添加、更新和删除记录,在我的笔记本电脑上一切正常。如果我尝试在我的 phone 上使用它,则记录的添加和删除有效,但更新无效。为了更新记录,移动了 div 以使下方的表单框可见。我想我在使用 click 和 blur 事件处理程序时遇到了问题。我是 Javascript 的新手,看过一些关于使用控制台查找错误的教程,但我不知道从哪里开始。我认为导致问题的代码部分是:
// Show the text box on click
$('body').delegate('.editable', 'click', function(){
var ThisElement = $(this);
ThisElement.find('span').hide();
ThisElement.find('.gridder_input').show().focus();
});
一旦这个问题得到解决,我担心以下内容可能也会存在:
// Pass and save the textbox values on blur function
$('body').delegate('.gridder_input', 'blur', function(){
var ThisElement = $(this);
ThisElement.hide();
ThisElement.prev('span').show().html($(this).val()).prop('title', $(this).val());
var UrlToPass = 'action=update&value='+ThisElement.val()+'&crypto='+ThisElement.prop('name');
if(ThisElement.hasClass('datepicker')) {
return false;
}
$.ajax({
url : 'activities_ajax.php',
type : 'POST',
data : UrlToPass
});
终于找到答案了。它只是委托给不起作用的主体,所以我在所有内容周围添加了一个 div 包装器并委托给它而不是主体。
我有一个 php/javascript/ajax 代码,可以添加、更新和删除记录,在我的笔记本电脑上一切正常。如果我尝试在我的 phone 上使用它,则记录的添加和删除有效,但更新无效。为了更新记录,移动了 div 以使下方的表单框可见。我想我在使用 click 和 blur 事件处理程序时遇到了问题。我是 Javascript 的新手,看过一些关于使用控制台查找错误的教程,但我不知道从哪里开始。我认为导致问题的代码部分是:
// Show the text box on click
$('body').delegate('.editable', 'click', function(){
var ThisElement = $(this);
ThisElement.find('span').hide();
ThisElement.find('.gridder_input').show().focus();
});
一旦这个问题得到解决,我担心以下内容可能也会存在:
// Pass and save the textbox values on blur function
$('body').delegate('.gridder_input', 'blur', function(){
var ThisElement = $(this);
ThisElement.hide();
ThisElement.prev('span').show().html($(this).val()).prop('title', $(this).val());
var UrlToPass = 'action=update&value='+ThisElement.val()+'&crypto='+ThisElement.prop('name');
if(ThisElement.hasClass('datepicker')) {
return false;
}
$.ajax({
url : 'activities_ajax.php',
type : 'POST',
data : UrlToPass
});
终于找到答案了。它只是委托给不起作用的主体,所以我在所有内容周围添加了一个 div 包装器并委托给它而不是主体。