Javascript 如何将内容包含到ajax成功代码中?
在我的项目中,ajax的成功功能有很多内容。我将把这些内容放到一个名为textcsc.js的文件中。在ajax中调用include()方法 在成功运行的独立代码之前:Javascript 如何将内容包含到ajax成功代码中?,javascript,jquery,ajax,Javascript,Jquery,Ajax,在我的项目中,ajax的成功功能有很多内容。我将把这些内容放到一个名为textcsc.js的文件中。在ajax中调用include()方法 在成功运行的独立代码之前: $(document).ready(function() { $('#bbs td').dblclick(function (){ ....... $.ajax({ dataType:'json', ........ success:function(data) { va
$(document).ready(function()
{
$('#bbs td').dblclick(function (){
.......
$.ajax({
dataType:'json',
........
success:function(data)
{
var $myHtml=data.stPrc;
$myHtml.find("label").filter(function(){return $(this).text()===stChr;}).parent().attr("class", "rightd");
$myHtml.find('label:contains('+stChr+')').next('label:contains('+stTrnStr+')').parent().next().attr('class','rightd');
$myHtml.find('label:contains('+stChr+')').next('label:contains('+stTrnStr+')').parent().next().children("div").eq(0).attr('class','speech right');
$myHtml.find('label:contains('+stChr+')').next('label:contains('+stFinStr+')').parent().next().attr('class','rightd');
$myHtml.find('label:contains('+stChr+')').next('label:contains('+stFinStr+')').parent().next().children("div").eq(0).attr('class','speech right');
$myHtml.find('label:contains('+stChr+')').next('label:contains('+stHngStr+')').parent().next().children("div").eq(0).attr('class','speech right');
......
}
});
});
});
在所有$myHtml.find内容被移动到textcsc.js之后
$(document).ready(function()
{
$('#bbs td').dblclick(function (){
.......
$.ajax({
dataType:'json',
.......
success:function(data)
{
var $myHtml=data.stPrc;
include(textcsc.js);
......
}
});
});
});
它工作失败,我尝试过:
<script src="textcsc.js"></script>
$(document).ready(function()
{
$('#bbs td').dblclick(function (){
.......
$.ajax({
dataType:'json',
........
success:function(data)
{
var $myHtml=data.stPrc;
chgLftRig($myHtml);//chgLftRig() is in textcsc.js
........
}
});
});
});
它工作正常,我将chgLftRig()从$('#bbs td').dblclick()中取出,它再次失败
我不知道为什么$myHtml不能脱离$('#bbs td').dbclick()。恐怕include()不是jquery或javascript函数。如果要隔离该代码,最好使用该代码创建一个函数,并在success内部调用它
您可以在另一个文件中使用该函数,并使用标记将其导入到.html文件中
<script src="yourjsfile.js" ></script>
恐怕include()不是jquery或javascript函数。如果要隔离该代码,最好使用该代码创建一个函数,并在success内部调用它
您可以在另一个文件中使用该函数,并使用标记将其导入到.html文件中
<script src="yourjsfile.js" ></script>
您可以这样做:
$.ajax({
dataType:'json',
.......
success:function(data)
{
var $myHtml=data.stPrc;
$.getScript('textcsc.js', function(){
addSomeData();
});
......
}
});
然后在textcsc.js文件中
function addSomeData(){
console.log('some magic here')
}
您可以这样做:
$.ajax({
dataType:'json',
.......
success:function(data)
{
var $myHtml=data.stPrc;
$.getScript('textcsc.js', function(){
addSomeData();
});
......
}
});
然后在textcsc.js文件中
function addSomeData(){
console.log('some magic here')
}
正如A.iglesias所说,并不是所有现代浏览器都在其本机解释器中使用include语法,如果您想以这种方式破坏js代码,我强烈建议您使用ES6语法和NPM处理程序 在ES5中,在当前js之前,生成函数并在js文件内部进行分割,以html语法调用它们(因此函数在使用之前声明) 在ajax调用中:
$.ajax({
dataType:'json',
.......
success:function(data)
{
var $myHtml=data.stPrc;
renderDataFromAjaxCall($myhtml)
......
}
});
您可以检查并开始使用js进行新的开发。
如果你想保持原来的方式,我建议你使用JS设计模式,比如modular,,正如a.iglesias所说,并不是所有的现代浏览器都在其本机解释器中使用include语法,如果你想以这种方式破坏JS代码,我强烈建议你使用ES6语法和NPM处理程序 在ES5中,在当前js之前,生成函数并在js文件内部进行分割,以html语法调用它们(因此函数在使用之前声明) 在ajax调用中:
$.ajax({
dataType:'json',
.......
success:function(data)
{
var $myHtml=data.stPrc;
renderDataFromAjaxCall($myhtml)
......
}
});
您可以检查并开始使用js进行新的开发。
如果您想保持原有的方式,我建议您使用类似modular的JS设计模式,您是否将新文件包含在html中以及jquery包含之后?您是否在代码中的任何地方声明了
include()
呢?您是否将新文件包含在html中以及jquery包含之后?您是否声明了include()
您的代码中的任何地方?它并不像您所说的那样工作$myHtml是来自DB的html代码,$.ajax()在$('#bbs td').dblclick()中;bbs是表id。如果我在$('#bbs td').dblclick()中定义renderDataFromAjaxCall(),它可以正常工作。但是在$('#bbs td').dblclick()之外,它工作失败。因此,与textcsc.php中一样,有一个从会话获取的值。我将该值设置为全局,。而且textcsc.js工作得很好,但它并不像您所说的那样工作$myHtml是来自DB的html代码,$.ajax()在$('#bbs td').dblclick()中;bbs是表id。如果我在$('#bbs td').dblclick()中定义renderDataFromAjaxCall(),它可以正常工作。但是在$('#bbs td').dblclick()之外,它工作失败。因此,与textcsc.php中一样,有一个从会话获取的值。我将该值设置为全局,。而且textcsc.js工作得很好,但它并不像您所说的那样工作$myHtml是来自DB的html代码,$.ajax()在$('#bbs td').dblclick()中;bbs是表id。如果我在$('#bbs td').dblclick()中定义addSomeData(),它可以正常工作。但是在$('#bbs td').dblclick()之外,它无法工作。因此,与$.getScript()相同,它不能像您所说的那样工作$myHtml是来自DB的html代码,$.ajax()在$('#bbs td').dblclick()中;bbs是表id。如果我在$('#bbs td').dblclick()中定义addSomeData(),它可以正常工作。但是在$('#bbs td').dblclick()之外,它工作失败。因此与$.getScript()和