Jquery中的手动激发事件
Manually fire event in Jquery
我正在JQuery中动态创建一个输入框列表,并在选中它们时有一个事件通知我。
$("#myDiv").on("change", "input[type='checkbox']" , function(){
if(this.checked){
alert("HERE");
//...
}else{
alert("THERE");
//...
}
});
当页面加载并显示所有复选框时,我可以通过选中/取消选中来输入此项。问题是,我希望最初根据后端逻辑的结果来检查其中的一些。所以我想在初始加载之后输入这个函数。
然而,我看了.trigger()
和.click()
,它们似乎都不起作用。
我还有其他途径可以进入这个回拨吗?
如果要在复选框上显示checked,只需将checked
属性设置为checked
<input type='checkbox' checked='checked' />
如果要激发change();
事件,
$('<your_checkbox>').change();
或
$('<you_checkbox>').trigger('change');
在这种情况下,您可以创建一个命名函数,而不是使用匿名函数,并在需要时随时调用它。
var myFunction = function(){
if(this.checked){
alert("HERE");
//...
}else{
alert("THERE");
//...
}
}
$("#myDiv").on("change", "input[type='checkbox']", myFunction );
// triggering the function manually:
$("#myDiv input[type='checkbox']").each( myFunction );
myDiv更改时,您的代码会被触发,并且您会传递一个复选框列表。这里的this是mydiv。为什么不使用:
$('input:checkbox').each(function(){// Now this is referring your checkbox});
按名称单独定义函数,然后在为每个已签出的项加载页面后调用它。
function onChange(this) {
if(this.checked){
alert("HERE");
//...
}else{
alert("THERE");
//...
}
}
监视复选框更改的代码将变为:
$("#myDiv").on("change", "input[type='checkbox']" , function() {
onChange(this);
});
由于我不知道代码是什么样子的,我编写了一些代码来打印复选框,并定义默认情况下要选择哪些复选框。它是PHP,但这个概念应该适用于任何服务器端语言。
<select>
<?php
$items = array(
'value1' => 'text1',
'value2' => 'text2',
'value3' => 'text3'
);
$selected = array(
'value1' => true,
'value3' => true
);
foreach ($items as $value => $text) {
$selectedAttr = isset($selected[$value]) && $selected[$value]) ?
" selected='selected'" : '';
echo "<option value='$value'$selectedAttr>$text</option>";
}
?>
</select>
您需要打印javascript,该javascript运行您希望为每个选定选项执行的函数。对于我使用的复选框示例,您想要的最终结果是:
$().ready(function() {
var defaultSelected = [ "[option name='value1']" , "[option name='value3']" ];
for (var i=0; i < defaultSelected.length; i++) {
$(defaultSelected[i]).each(onChange);
}
});
您需要在服务器端生成javascript:
<?php
// $selected was defined in the previous code section
// Create selectors that will select each checkbox option
$selectors = array();
foreach ($selected as $s) {
array_push($selectors, "[option name='$s']");
}
// Produces string: [ "[option name='value1']" , "[option name='value3']" ]
$jsSelectorArray = '[ "' . implode('" , "', $selectors) . '" ]';
echo "
$().ready(function() {
var defaultSelected = $jsSelectorArray;
for (var i=0; i < defaultSelected.length; i++) {
$(defaultSelected[i]).each(function() {
onChange(this);
});
}
});
";
?>
相关文章:
- 选择onclick事件jquery
- 用于多个类事件Jquery的单个函数
- 激发滑块's幻灯片事件jquery ui
- 设置重复按钮以注册点击事件jquery
- 保留当前点击事件jquery
- 启动/停止按键事件jquery
- 在事件jquery中插入一个函数
- 删除克隆的事件JQuery
- typeahead选择事件(jQuery)的动态绑定
- 触发自定义事件 Jquery
- 绑定两次或更多次的事件 jquery
- 单击时的事件 jquery 不起作用
- 在鼠标悬停事件 jquery 上显示边框的内容
- 同时触发两个鼠标事件 jQuery
- 焦点事件 jquery 组合框/自动完成
- 如何在页面中捕获“正文”和“正文”事件[Jquery].
- 将对象传递给事件 jQuery
- 验证“取消”上的字段 单击Onbeforeunload事件JQUERY
- 复选框单击事件 jQuery 不起作用
- 口述事件jquery顺序