从Ajax表单加载内容时,JQuery函数失败

从Ajax表单加载内容时,JQuery函数失败,jquery,asp.net-mvc,jquery-ui,asp.net-ajax,Jquery,Asp.net Mvc,Jquery Ui,Asp.net Ajax,我对应用自定义jquery函数的图像有问题。考虑下面的代码块。 <% Dim sUniqueIdent As String = Now.Ticks.ToString%> <div id="chart<%: sUniqueIdent %>"></div> <script type="text/javascript"> $(document).ready(function () { bindLinksForChart&

我对应用自定义jquery函数的图像有问题。考虑下面的代码块。

<% Dim sUniqueIdent As String = Now.Ticks.ToString%>

<div id="chart<%: sUniqueIdent %>"></div>

<script type="text/javascript">
   $(document).ready(function () {
      bindLinksForChart<%: sUniqueIdent %>();
   });

   function bindLinksForChart<%:sUniqueIdent %>(){
      $('div#chart<%: sUniqueIdent %>').chartLinks({
          charturl: '<%: Model.ChartPath %>', 
          uniqueident: '<%: sUniqueIdent %>', 
          height: '<%: Model.Height%>',
          width: '<%: Model.Width%>'        
      });
   }
</script>

$(文档).ready(函数(){
bindLinksForChart();
});
函数bindLinksForChart(){
$('div#chart')。图表链接({
图表URL:“”,
唯一标识符:“”,
高度:'',
宽度:“”
});
}
我把这个嵌入到一些jQuery选项卡中,我使用一个唯一的标识符,因为有很多这样的图表

chartlinks函数加载div内的图像,其中一个div的链接浮动在上方,当用户将鼠标移到上方时,该链接将变为可见

在我使用Ajax表单在其中一个选项卡上重新加载某些内容之前,这一切都很正常。当表单加载时,它会正确加载所有内容,但无法加载图像和浮动链接(由chartlinks函数提供)

这是表格

<% Using Ajax.BeginForm("Tab", New With {
    .controller = "Content"},
New AjaxOptions With {
    .UpdateTargetId = "chartDiv", 
    .InsertionMode = InsertionMode.Replace, 
    .OnSuccess = "bindLinksForChart<%:sUniqueIdent%>"})

<input type="submit" id="UpdateChart" value="Update Chart" /></p>

<%End Using%>

您能否详细说明一下您在何处声明唯一标识符,以及在其中一个选项卡上重新加载内容是什么意思

我还没试过,但还是试过

<% Dim sUniqueIdent As String = System.Guid.NewGuid()%>

<div id="<%: sUniqueIdent %>" class="chart"></div>

<script type="text/javascript">
   $(document).ready(function () {
      bindLinksForChart("<%: sUniqueIdent %>");
   });

   function bindLinksForChart(indentifier){
      $('.chart').chartLinks({
          charturl: '<%: Model.ChartPath %>', 
          uniqueident: identifier, 
          height: '<%: Model.Height%>',
          width: '<%: Model.Width%>'        
      });
   }
</script>

$(文档).ready(函数(){
bindLinksForChart(“”);
});
函数bindLinksForChart(标识符){
$('.chart')。图表链接({
图表URL:“”,
唯一标识符:标识符,
高度:'',
宽度:“”
});
}
这将允许您对每个div使用一个java脚本函数,而不是一个不同的函数。然后,您可以将Ajax表单代码更改为:

<% Using Ajax.BeginForm("Tab", New With {
    .controller = "Content"},
New AjaxOptions With {
    .UpdateTargetId = "chartDiv", 
    .InsertionMode = InsertionMode.Replace, 
    .OnSuccess = "bindLinksForChart(" + sUniqueIdent + ")"})

<input type="submit" id="UpdateChart" value="Update Chart" /></p>

<%End Using%>

您能否详细说明一下您在何处声明唯一标识符,以及在其中一个选项卡上重新加载内容是什么意思

我还没试过,但还是试过

<% Dim sUniqueIdent As String = System.Guid.NewGuid()%>

<div id="<%: sUniqueIdent %>" class="chart"></div>

<script type="text/javascript">
   $(document).ready(function () {
      bindLinksForChart("<%: sUniqueIdent %>");
   });

   function bindLinksForChart(indentifier){
      $('.chart').chartLinks({
          charturl: '<%: Model.ChartPath %>', 
          uniqueident: identifier, 
          height: '<%: Model.Height%>',
          width: '<%: Model.Width%>'        
      });
   }
</script>

$(文档).ready(函数(){
bindLinksForChart(“”);
});
函数bindLinksForChart(标识符){
$('.chart')。图表链接({
图表URL:“”,
唯一标识符:标识符,
高度:'',
宽度:“”
});
}
这将允许您对每个div使用一个java脚本函数,而不是一个不同的函数。然后,您可以将Ajax表单代码更改为:

<% Using Ajax.BeginForm("Tab", New With {
    .controller = "Content"},
New AjaxOptions With {
    .UpdateTargetId = "chartDiv", 
    .InsertionMode = InsertionMode.Replace, 
    .OnSuccess = "bindLinksForChart(" + sUniqueIdent + ")"})

<input type="submit" id="UpdateChart" value="Update Chart" /></p>

<%End Using%>

Hi Ritik,谢谢你,你的建议帮了我的忙,它清理了我的代码,但我的问题仍然存在。我现在得到了一个不同的错误,但现在是周五下午5点,我没有时间找到原因。。我将在周末或周一进行调查,并发布更新。当然。如果你能更清楚地了解到底发生了什么,那就更好了。慢慢来。好的,我已经解决了这个问题(在你建议的帮助下),问题是我没有正确地绑定OnSuccess事件,为了使它工作,需要将它绑定到没有括号的位置(即OnSuccess=“bindLinksForChart”或作为一个函数(即OnSuccess=“function(){bindLinksForChart(blah,blah,blah);}”否则javascript将在控制器运行之前执行。Hi Ritik,谢谢你的建议,你的建议帮助我清理了一些代码,但我的问题仍然存在。我现在收到了一个不同的错误,但现在是周五下午5点,我没有时间找到原因。我将在周末或周一进行调查nd发布更新。当然。如果你能更清楚地了解到底发生了什么,那就更好了。慢慢来。好的,我已经解决了这个问题(在你建议的帮助下),问题是我错误地绑定了OnSuccess事件,为了使它能正常工作,需要绑定它而不带括号(即OnSuccess=“bindLinksForChart”或者作为函数(即.OnSuccess=“function(){bindLinksForChart(blah,blah,blah);}”,否则javascript将在控制器运行之前执行。