在DOM加载时触发函数
trigger a function on DOM load
我有一个小功能:
$('.chrnumberpickerDiv select').change(function(){
var sel = $(this),
value = sel.closest('.chrnumberpickerDiv').find('.chrnumberpickerDivText');
value.text(sel.find(':selected').text());
}).one('change');
我的问题是,我还需要在DOM加载时触发它。我尝试过.trigger('change')
而不是.one('change')
,但它似乎是循环的,从未停止刷新我的页面。那么,我可以做些什么来触发DOM上的事件,但又不会对其他事件造成任何损害,或者使函数进入循环?
如果我理解你的问题,你需要在选择更改时触发一个函数,以及在页面加载以填充初始值时以编程方式触发它:
// define the handler
var changeHandler = function() {
var sel = $(this),
value = sel.closest('.chrnumberpickerDiv').find('.chrnumberpickerDivText');
value.text(sel.find(':selected').text());
};
// bind the handler
$('.chrnumberpickerDiv select').change(changeHandler);
$(document).ready(function () {
// execute the handler on page load
// use proxy to change what "this" means in the handler
// (jQuery does this for you when you bind a handler through jQuery)
$.proxy(changeHandler, $('.chrnumberpickerDiv select')[0]));
});
代理的文档
试试这个,而不是你的代码
$(document).ready(function() {
$('.chrnumberpickerDiv select').change(function(){
var sel = $(this),
value = sel.closest('.chrnumberpickerDiv').find('.chrnumberpickerDivText');
value.text(sel.find(':selected').text());
}).one('change');
});
您必须小心,不要分配多个变更功能。否则,当更改事件发生时,所有这些都将被调用。
相关文章:
- 如何在DOM元素上按类型构建此函数
- 在Angular中呈现DOM对象时,如何调用控制器中指定的函数
- 如何检查DOM节点是否继承自构造函数
- 在DOM加载时触发函数
- 使用promise通过外部函数从DOM中检索属性
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- 在 dom 完成加载 durandal 后调用函数
- 如何在构造函数中创建一个简单的DOM元素,并在调用时将其附加到元素中
- "撤消”;Javascript中的DOM操作函数
- DOM:如何根据迭代器值设置元素宽度并在mouseover上调用函数
- 向一个jQuery/DOM元素添加一个函数
- 为什么jQuery选择器函数与原生DOM方法相比如此缓慢
- 当我们使用基于标记的DOM就绪执行时,如何处理js函数
- JavaScript-所有DOM操作函数都返回null/empty
- 为什么要在DOM事件触发之前声明命名函数
- DOM渲染是否保证在单个(同步)函数期间阻止'执行
- 在DOM(html)上下文中使用角度作用域函数时出现的问题
- javascript库中的函数/dom调用
- 创建代码以逐个运行函数(DOM)的一些想法
- javascript函数DOM事件监听器使用"this"