我在这个问题上遇到了困难,我找不到任何相关的问题(虽然我认为我已经使用了很多相关的搜索引擎(参考:标题)......所以这里是:< / p>
<td class="noprint">
<a class="ui-button isbillable" onclick="switchBillable($(this))" value="1">Aanrekenbaar?</a>
<a class="ui-button isbillable" onclick="switchBillable($(this))" value="2">Aanrekenbaar?</a>
<a class="ui-button isbillable" onclick="switchBillable($(this))" value="...">Aanrekenbaar?</a>
</td>
我想在页面加载时执行AJAX请求(PHP),根据AJAX请求返回TRUE或FALSE,为ui按钮提供特定颜色。但是,此代码永远不会执行(使用&#39; alert()&#39;进行测试:
$(document).ready(function(){
$( ".isbillable" ).load( function() {
var prestId = $(this).val();
$.ajax({
url: "ajax/check_billable.php",
data: { q: prestId },
success: function () {
if (response == true) {
$(this).removeClass('isbillable');
$(this).addClass('billable');
}else{
$(this).removeClass('isbillable');
$(this).addClass('notbillable');
}
}
});
}).button({
icons: { primary: "ui-icon-help" },
text: false
});
$( ".billable" ).button({
icons: { primary: "ui-icon-notice" },
text: false
});
$( ".notbillable" ).button({
icons: { primary: "ui-icon-check" },
text: false
});
});
使用Firebug我无法检测到任何AJAX调用,因此永远不会执行此代码 - 我已尝试使用load(),on(&#39; load&#39; ,,),bind()
答案 0 :(得分:2)
load()
元素上没有<a>
个事件。如果您希望在加载页面时发生某些事情,只需将其放在document.ready处理程序的顶层。
您还需要使用context:
选项在回调中提供$(this)
。
$(document).ready(function(){
$(".isbillable").each(function() {
var prestId = $(this).val();
$.ajax({
url: "ajax/check_billable.php",
data: { q: prestId },
context: this,
success: function () {
if (response == true) {
$(this).removeClass('isbillable').addClass('billable');
}else{
$(this).removeClass('isbillable').addClass('notbillable');
}
}
});
}).button({
icons: { primary: "ui-icon-help" },
text: false
});
$( ".billable" ).button({
icons: { primary: "ui-icon-notice" },
text: false
});
$( ".notbillable" ).button({
icons: { primary: "ui-icon-check" },
text: false
});
});
答案 1 :(得分:0)
尝试
$(window).load(function(){
$( ".isbillable" ).load( function() {
var prestId = $(this).val();
$.ajax({
url: "ajax/check_billable.php",
data: { q: prestId },
success: function () {
if (response == true) {
$(this).removeClass('isbillable');
$(this).addClass('billable');
}else{
$(this).removeClass('isbillable');
$(this).addClass('notbillable');
}
}
});
}).button({
icons: { primary: "ui-icon-help" },
text: false
});
$( ".billable" ).button({
icons: { primary: "ui-icon-notice" },
text: false
});
$( ".notbillable" ).button({
icons: { primary: "ui-icon-check" },
text: false
});
});