我试图在单击按钮时调用 jQuery 函数。但我收到错误如下:
未捕获的引用错误:update_question_ajax 未定义
HTML:
<button type="button" class="update-question-<?php echo $i; ?> button" onclick="update_question_ajax(<?php echo $i; ?>)" style="outline: 0 none;"><?php _e('Update') ?></button>
jQuery:
$(function(){
function update_question_ajax(id)
{
var test = $('.edit-question-' + id + ' input[name="translated"]');
var editedQuestionId = $('#question-id-'+id).val();
var editedQuestionObj = $('.edit-question-' + id + ' input[name="translated"]').val();
var modalObj = $('#myQuestionModal');
$.ajax({
type: "POST",
url: "<?php echo base_url('admin/question/admin_edit_question'); ?>",
data:{
edited_question: editedQuestionObj,
question: editedQuestionId
},
success: function(){
modalObj.dialog('close');
modalObj.html('');
},
complete: function(){
//window.location.reload(true);
}
});
return false;
}
});
如果你们能帮我解决这个问题,我将不胜感激。
谢谢你!
似乎是范围问题。您基本上已经在另一个函数中定义了该函数。您还应该尽量避免将 php 放在 javascript 中。从技术上讲,它是有效的,但并不是真正的好形式。
删除了内联点击处理程序。
<button type="button" class="update-question button" data-id="<?php echo $i; ?>" style="outline: 0 none;"><?php _e('Update') ?></button>
然后我们创建一个自执行函数,将 jQuery 作为 $ 传入,这使得内部的所有内容都能够使用“$”作为 jQuery。然后为按钮定义点击处理程序并使用数据属性来传递 id,而不是使用混合在 JS 中的 PHP 并将其放置在 DOM 中。就是感觉干净一点。另外,请确保在文档底部、关闭正文之前加载 jquery/其他脚本。这样您就不需要 .ready,因为您的文档已经加载。
(function($){
// Define click handler.
$('button.update-question').on('click', function(e){
e.preventDefault();
var id = $(this).data('id');
update_question_ajax(id);
});
function update_question_ajax(id) {
var test = $('.edit-question-' + id + ' input[name="translated"]'),
editedQuestionId = $('#question-id-'+id).val(),
editedQuestionObj = $('.edit-question-' + id + ' input[name="translated"]').val(),
modalObj = $('#myQuestionModal');
$.ajax({
type: "POST",
url: "YOURURL",
data:{
edited_question: editedQuestionObj,
question: editedQuestionId
},
success: function(){
modalObj.dialog('close');
modalObj.html('');
},
complete: function(){
//window.location.reload(true);
}
});
}
}(jQuery));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)