我正在尝试进行 ajax 调用来获取 session 数据,以便在页面加载后将其插入到我的页面中
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
最佳答案
我相信您的问题与 $(this) 的范围有关。因为你已经将 ajax get 函数嵌套在你的 livequery 函数中,在另一个匿名函数中,我愿意打赌 $(this) 现在引用你的 $.get() 调用或其他东西。
当您知道 $(this) 选择了正确的对象时,您需要尽快缓存它:
jQuery(".add_answer").livequery('click',function()
{
var add_answer = $(this);
$.get(...)
{
add_answer.parents('div:first')...
}
}
上面的代码应该缓存add_answer元素,但是我的livequery知识有点生疏。
关于您的代码的一些建议:
- 与 jQuery() 或 $() 快捷方式的使用保持一致,它们做同样的事情。
- 整个代码片段周围的匿名函数是怎么回事?这只是一个简单的例子吗?它可能应该替换为 $(document).ready(function { ... });
关于jquery - Ajax jQuery,初学者问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/395759/