我写了这个javascript/jQuery片段来更改复选框. http://jsfiddle.net/johnhoffman/crF93/
使用Javascript
$(function() {
$("a").click(function() {
if ($("input[type='checkbox']").attr('checked') == "checked")
$("input[type='checkbox']").removeAttr('checked');
else
$("input[type='checkbox']").attr('checked', 'checked');
return false;
});
$("input[type='checkbox']").change(function(){
console.log("Checkbox changed.");
});
});?
Run Code Online (Sandbox Code Playgroud)
HTML
<input type="checkbox" />
<a href="#">Change CheckBox</a>?
Run Code Online (Sandbox Code Playgroud)
有趣的是,单击该链接会更改文本框,但不会触发表单更改事件,该事件会调用在Chrome Web Developer Console中记录消息的功能.为什么?我怎么做到这一点?
如果我将一个selector作为parameter一个函数传递给一个函数.
// selector is an object
function(selector) {
selector.trigger('eventHere');
}
Run Code Online (Sandbox Code Playgroud)
显然,event如果selector传入的内容没有,那么它永远不会触发event,但是在触发事件之前我应该做一些条件检查吗?我的意思是:
// selector is an object
if(selector === 'matched'){
// then fire the event
}
else{
// do nothing
}
Run Code Online (Sandbox Code Playgroud)
或者只是离开它......?