jQuery – .Ready触发不在页面中的div标签
我在一个单独的.js脚本文件中实现了下面的函数,我在我的主页面(Asp.net mvc)中加载。
回调服务器的成本相当昂贵,但如果需要在我的div标签需要填写的子页面/内容页面上特别要求,则可以。
我的问题是代码在每个页面上运行,包括不存在div标签的页面。
我该如何补救我的代码?
任何评论欢迎,谢谢,安德斯,丹麦
jQuery("divStatWrapper").ready(function() { jQuery.getJSON("/Statistics/GetPointsDevelopment", function(json) { jQuery("#divStatWrapper #divStatLoading").fadeOut(1000); var jsonPoints = new Array(); jQuery.each(json.Points, function(i, item) { jsonPoints.push(item.PlayerPoints ); }); jsonPoints.reverse(); var api = new jGCharts.Api(); jQuery('') .attr('src', api.make({ data : jsonPoints, type : "lc", size : "600x250" })) .appendTo("#divStatContents"); jQuery("#divStatWrapper #divStatContents").fadeIn(1000); }); });
HTML:
Statistik - udvikling i point over tid
(Alle resultater frem til løbende dato)
Loading
只是一个想法:
$("#divStatContents").each(function(){ // your code here });
将为每个#divStatContents运行一次
你错过了#?
jQuery("#divStatWrapper").ready(function() [...] ___
除此之外,ready函数在DOM准备好时触发,而不是在元素加载时触发。 来自文档:
.ready()方法只能在与当前文档匹配的jQuery对象上调用,因此可以省略选择器。
您可能应该绑定到div的load事件而不是ready事件:
jQuery('#divStatWrapper').load(function() [...]
这可能是因为你的初始选择器是错误的。 我假设您的HTML中没有任何
元素,这意味着您要引用带有ID的
,如下所示(注意#):
jQuery("#divStatWrapper")
//declare event to run when div is visible function doFunction(){ //do something } //hookup the event $('#divId').bind('isVisible', doFunction); //show div and trigger custom event in callback when div is visible $('#divId').show('slow', function(){ $(this).trigger('isVisible'); });