2013-12-15 54 views
0

我是D3.js的初學者我在最近幾天遇到了一個問題。下面是代碼片段檢查D3.js中的函數中是否存在URL

function zoomed() { 
var tiles = tile 
    .scale(zoom.scale()) 
    .translate(zoom.translate()) 
(); 

projection 
    .scale(zoom.scale()/2/Math.PI) 
    .translate(zoom.translate()); 

var image = layer 
    .style(prefix + "transform", matrix3d(tiles.scale, tiles.translate)) 
.selectAll(".tile") 
    .data(tiles, function(d) { return d; }); 


image.exit() 
    .remove(); 

image.enter().append("img") 
    .attr("class", "tile") 
    .attr("src", function(d) { return "http://111.118.179.198/Data/63699_1600x1200-wallpaper-cb1362414617.jpg_" + 8 + "_" + d[0] + "_" + d[1] + ".png"; }) 
    .style("left", function(d) {return (d[0] << 8) + "px"; }) 
    .style("top", function(d) { return (d[1] << 8) + "px"; }); 
} 

我的要求是我之前設置src屬性的img我需要檢查URL是否是現有的,如果它是一個有效的現有網址,然後適當的值將設置爲src否則src將是空的。

回答

0

這會更容易使用jQuery做:

var url = "some_url"; 
    $.ajax(url, 
    { 
    statusCode: { 
     200: function() { 
     image.attr("src," url); 
     }, 
     404: function() { 
     image.attr("src", otherURL); 
     } 
    } 
    } 
+0

嗨拉斯,感謝您的回答,但我仍然不清楚這一點。我添加了更多的代碼,之前的代碼是「縮放」功能的一部分。我無法納入您所規定的解決方案。我應該如何繼續? – nilarya

+0

這個檢查需要一個AJAX調用,所以它會是異步的。也就是說,首先添加元素,然後在回調返回時設置'src'屬性。 –

+0

嗨拉爾斯,這是我多遠,http://jsfiddle.net/nilarya/gvf7V/3/。你能幫我在這裏嗎? – nilarya