Knockout.js动态链接不会点击

时间:2013-08-24 02:43:31

标签: javascript jquery html css knockout.js

我正在开发一个使用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

1 个答案:

答案 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}},它也可以解决您的问题。