我正在开发一个使用knockout js的新项目。我已经设置了一个小表,显示图像和信息输入到填充可观察数组的表单中。我有用锚(链接)标签包裹的图像,我通过KO数据绑定输入href。见下文。
<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 :(得分:12)
你走在正确的轨道上
另外,值得注意的是,我也尝试添加
click: function(){ return true; }
,这也没有帮助。
但click: function(){ return true; }
本身仍然不够click
,因为clickBubble: false
事件仍然会冒出来,因此您需要使用<a target="_blank" data-bind="attr: {href: imgUrl},
click: function() { return true;}, clickBubble: false">
<img class="imgThumb" data-bind="attr: {src: imgUrl}"/>
</a>
选项(另请参阅documentation ):
<body style="padding-top: 100px;" data-bind="click: modalKiller">
演示JSFiddle。
顺便说一下,您对主体元素的点击绑定会“窃取”您的点击事件:true
。因此,如果从modalKiller
处理程序返回{{1}},它也可以解决您的问题。