Ajax jQuery,初学者问题
我正在尝试进行一个ajax调用,以获取会话数据,以便在像这样加载页面后插入到页面中Ajax jQuery,初学者问题,jquery,ajax,Jquery,Ajax,我正在尝试进行一个ajax调用,以获取会话数据,以便在像这样加载页面后插入到页面中 jQuery(function(){ // Add Answer jQuery(".add_answer").livequery('click',function(){ var count = $(this).attr("alt"); count++; var count1 = count-1; $.get('quiz/select', function(p_type){
jQuery(function(){ // Add Answer
jQuery(".add_answer").livequery('click',function(){
var count = $(this).attr("alt");
count++;
var count1 = count-1;
$.get('quiz/select', function(p_type){ // Ajax Call for Select Data
$(this).parents('div:first').find('.a_type_'+count1+'').after('' + p_type + '');
$(this).attr("alt", count);
});
});
});
我调用的文件已找到,但其内容未通过“p_type”打印出来
和$(this).attr(“alt”,count)代码>部分函数未执行
注意:我的框架使用CodeIgniter,js使用jquery,我相信您的问题与$的范围有关(这个)。因为您已经在livequery函数中嵌套了ajax get函数,在另一个匿名函数中,我敢打赌$(这)现在是指您的$.get()调用或其他什么
您需要在您知道已选择正确对象的位置尽快缓存$(this):
jQuery(".add_answer").livequery('click',function()
{
var add_answer = $(this);
$.get(...)
{
add_answer.parents('div:first')...
}
}
上面的代码应该缓存add_answer元素,但我的livequery知识有点生疏
关于代码的一些建议:
- 与jQuery()或$()快捷方式的使用保持一致,它们做的事情是相同的李>
- 围绕整个代码段的匿名函数是什么?这只是一个简单的例子吗?它可能应该替换为$(document).ready(函数{…})李>
“this”是Javascript中的一个特殊关键字。
在外部函数中,它指的是.add_answer元素。
在你的内在功能中,它指的是窗口
jQuery(".add_answer").livequery('click',function(){
var self = this;
// ...
$.get('quiz/select', function(p_type){
// ...
$(self).attr("alt", count);
使用$(function(){…})相当于$(document).ready(function{…});你说得对。我总是发现$(document).ready()的意图更加清晰。