选择项目时,kendoListView 更改事件会触发两次
kendoListView change event is triggered twice when selecting item
问题:
当我通过代码选择列表视图中的第一个元素来触发更改事件时,该事件仅触发一次。当我通过单击列表视图项触发更改事件时,更改事件被触发两次。
知道什么可以触发第二个事件,如何防止它吗?
网页代码:
<div id="overview">
<div id="listView"></div>
</div>
<!-- Used lib source loaded from lib server, for developers -->
<link rel="stylesheet" type="text/css" href="http://cdn.kendostatic.com/2013.2.716/styles/kendo.common.min.css" />
<link rel="stylesheet" type="text/css" href="http://cdn.kendostatic.com/2013.2.716/styles/kendo.default.min.css" />
<script src="http://cdn.kendostatic.com/2013.2.716/js/jquery.min.js"></script>
<script src="http://cdn.kendostatic.com/2013.2.716/js/kendo.all.min.js"></script>
<!-- Custom libs loaded from meter, for customers/developers (very fast <0.3sec) -->
<script type="text/javascript" src="/MeasCon/Scripts/current_values.js"></script>
Javascript 代码:
/* JQuery function that is called when the DOM is done loading */
$(document).ready(function ()
{
/* The HTML template code for the current values overview listview */
/* .join is for multi line in javascript */
var overview_template = [
'<div class="overview_content" id="#:name#" >',
'<div class="overview_content_textbox">',
'<span class="overview_content_textbox_text">#:test#</span>',
'</div>',
'<div class="overview_content_led_box">',
'<span class="led_box"><img class="led" src="/MeasCon/Content/IMAGES/#= led #.png"></span>',
'</div>',
'</div>'
].join("'n");
/* the datasource for the overview listview */
var overview_datasource = new kendo.data.DataSource(
{
transport:
{
read:
{
url: "../../Content/current_values_overview.json",
dataType: "json"
}
},
});
/* populating the listview with the datasource as defined by the template */
$("#listView").kendoListView(
{
template: kendo.template(overview_template),
dataSource: overview_datasource,
selectable: true,
change: function()
{
var idx = this.select().index();
var item = this.dataSource.view()[idx];
alert(item.name);
},
dataBound: function()
{
//Fires when the list view has received data from the data source and it is already rendered.
// get a reference to the list view widget
var listView = $("#listView").data("kendoListView");
// selects first list view item
listView.select(listView.element.children().first());
}
});
});
JSON 文件
[
{
"name": "Performance",
"led": "ok_green"
}
]
您确定事件触发了两次吗?在这里测试:http://jsfiddle.net/OnaBai/R6v9M/
overview_content
事件处理程序在做什么?我看到的是,这是一次发射,然后change
被发射。而如果您使用trigger
则不会调用函数overview_content
。
相关文章:
- Jquery点击事件必须点击两次
- 一次点击,两次'单击'事件已启动
- 替换的超时事件触发两次或两次以上(有时)
- jquery on触发器按键事件两次
- 骨干视图触发事件两次
- animationEnd 事件处理程序 - 事件侦听两次
- 触发的事件被接收两次.如何找到鬼视图
- 服务器触发客户端事件两次
- `object:selected`事件触发两次
- 如何处理iframe中两次或根本不触发的IE11 localStorage事件
- 谷歌地图api v3 zoom_changed事件在fitBounds调用后激发了两次
- 为什么主干视图触发更改事件两次
- 如何防止在快速单击时两次调用en事件处理程序
- jQuery点击事件触发两次
- 为什么事件mouseenter在JavaScript中触发两次
- 在具有单击事件的 li 内时停止选中两次复选框
- 引导模式切换事件发生两次
- j查询点击事件触发两次
- 骨干模型触发“变化”.两次事件
- 在父元素具有相同事件函数的子元素上单独触发两次事件函数