【发布时间】:2013-02-26 01:22:47
【问题描述】:
在 jQuery 1.9.1 中,参数不会从触发器传递到单击处理程序,而在 jquery 1.7.2 中它们可以很好地传递。
举例说明:
<!doctype html>
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<!--script src="http://code.jquery.com/jquery-1.7.2.min.js"></script-->
</head>
<body>
<input id="test" type="checkbox">
<button id='trigger'>trigger</button>
</body>
<script>
$('#test').bind('click',
function (e, data){
if (typeof data == 'undefined') {
alert('no data passed');
return;
}
alert('first passed=' + data.passed1 + ' second passed='+data.passed2);
});
$('#trigger').click(
function (e){
$('#test').trigger('click',{passed1:'first',passed2:'second'});
});
</script>
</html>
当我使用 jquery-1.7.2.js 时,它仍然可以正常工作。
我错过了什么?请帮帮我。
【问题讨论】:
-
你为什么在
script之前关闭body?? -
经过测试,似乎没有一种语法可以工作,似乎是一个错误。
-
看起来像一个奇怪的错误。 jsfiddle.net/xHVDx/1
-
您的原始语法似乎适用于非复选框:jsfiddle.net/9mD6a 它也适用于具有除单击之外的事件的复选框jsfiddle.net/9mD6a/1 似乎是一个极端错误。
-
这仍然适用于 1.8.3,但似乎支持到此为止。
标签: jquery triggers parameter-passing