2013-08-24 64 views
6

我正在使用一個新的項目,正在使用淘汰賽js。我設置了一個小表,用於顯示輸入到填充可觀察數組的表單中的圖像和信息。我有用錨點(鏈接)標記包裹的圖像,我通過KO數據綁定提供了href。見下文。Knockout.js動態鏈接不點擊

<a data-bind="attr: {href: imgUrl}" target="_blank"><img class="imgThumb" data-bind="attr: {src: imgUrl}"/></a>

這一切都顯示爲預期的,但是,沒有鏈接實際上會通過點擊影像的位置。

數組條目看起來是這樣的:

col1: 'Bert', col2: 'Muppet', col3: 'Sesame Street', imgUrl: 'http://images3.wikia.nocookie.net/__cb20101210195428/muppet/images/4/40/Bert1970s.jpg'

渲染HTML看起來像這樣:

<a data-bind="attr: {href: imgUrl}}" target="_blank" href="http://images3.wikia.nocookie.net/__cb20101210195428/muppet/images/4/40/Bert1970s.jpg"><img class="imgThumb" data-bind="attr: {src: imgUrl}" src="http://images3.wikia.nocookie.net/__cb20101210195428/muppet/images/4/40/Bert1970s.jpg"></a>

再次,沒有我的鏈接的工作,他們不會通過點擊到我期望的圖像位置。任何人都可以幫助我,並指出我錯過了什麼。另外,值得注意的是,我也嘗試添加click: function(){ return true; },但這也沒有幫助。在此先感謝和演示可以在這裏找到:http://dev.voidbase.com/working.html

+0

很奇怪。這應該工作。 @PWKad,瀏覽器自動處理錨點上的hrefs。一旦設置了href(這是它的),就不需要JavaScript。我看不到任何阻止點擊的內容。 JSpell,你能在[fiddle](http://jsfiddle.net)中重現這個嗎? – FakeRainBrigand

回答

10

你在正確的軌道上

另外,值得注意的,我曾嘗試加入click: function(){ return true; }爲好,而沒有幫助。

但本身click: function(){ return true; }是不夠的,因爲click事件仍然會冒泡,所以你需要使用clickBubble: false選項(參見也在documentation):

<a target="_blank" data-bind="attr: {href: imgUrl}, 
     click: function() { return true;}, clickBubble: false"> 
    <img class="imgThumb" data-bind="attr: {src: imgUrl}"/> 
</a> 

演示JSFiddle

順便說一句,你的點擊綁定的身體元素「偷走」你的點擊事件:<body style="padding-top: 100px;" data-bind="click: modalKiller">。因此,如果從modalKiller處理程序返回true,它也會修復您的問題。

+0

這似乎是一個鏈接很多工作。但它對我有用 - 謝謝! – Aaron