我确实在我的模板中声明了点击
<script id="flipTemplate" type="text/html">
<div data-bind="attr: {id: ImageName }, click: alert('a')">
......
</script>
但alert('a')
直接执行我点击我生成动态内容的按钮,而不是当我点击该div时发出警告。
有什么方法可以解决这个问题吗?
答案 0 :(得分:2)
knockoutjs期望函数作为click binding参数而不是任意的js语句。
因此,您需要将警报调用包装成匿名函数
<div data-bind="attr: {id: ImageName }, click: function(data, event) { alert('a') } ">
但我强烈建议将每个逻辑放入您的ko视图模型中,并在绑定中使用viewmodel方法。所以不要将逻辑放入data-bind
表达式。
答案 1 :(得分:0)
我不确定你为什么要像这样设置你的Div。这会更好吗?
<div id="mydiv"/>
<script>
$(document).ready(function() {
$("#mydiv").click(function(ev){
ev.preventDefault();
alert("a");
});
});
</script>