我有下面的代码。点击没有触发一次从。对
$(document).on('click','#container.pagination .active', function(){
var page = $(this).attr('p');
loadData(page);
});
改变返回的
Uncaught TypeError: Object # has no method 'on'
错误,我发现一旦我关闭JQuery用户界面1.9.0它使用JQuery 1.8。 2,问题将得到解决。但JQ UI是我的项目的重要组成部分,因此无法从页面中删除。
我尝试了一种替代方案,可以帮助我在不使用.on的情况下实现相同的结果,但似乎甚至没有触发它。有没有语法错误? 我换成
$(document).on('click','#container.pagination .active', function(){
与
$('#container .pagination .active').click(function(){
所以,现在它是这样的:
$('#container .pagination .active').click(function(){
alert(loadData(page));
//$(document).on('click','#resultBox .pagination .active', function(){
var page = $(this).attr('p');
loadData(page);
//echo $page;
});
但是,函数甚至没有触发...
是否有当我在这个senario中使用.on VS .click时有所不同,那就是其功能失调的原因是什么?
=========故障排除=================== 这里有点更新的进一步信息,我的发现通过浏览器Chrome的错误报告:
Uncaught TypeError: Object #<Object> has no method 'on' jq_iface_testScores_with_pagination.js:176
(anonymous function) jq_iface_testScores_with_pagination.js:176
c.extend.ready jquery.tools.min.js:38
L jquery.tools.min.js:45
难道这意味着它也与jQuery工具交易以及....这是越来越疯狂...... 请帮助。
====最新发现 - 实际发现!如何解决它?============ 由于以前的错误发现,实际问题奠定了JQ工具1.2使用JL1.7.2。我认为它与我的JQ1.9.1的.on函数有矛盾。我尝试了多个页面。经过测试,即使简单地加载JQTool 1.2也会导致问题,甚至无法使用它。 如何在不删除jquerytool 1.2的情况下解决此问题?每次都返回相同的错误消息。
==解决方案====== smerny的持续帮助 后,我来到了一个决议,即最后,问题实际上是处理过时jquery.tool库。 问题是由于jq.tool lib是1.2.3而不是1.2.7导致的。有时候,事情很简单,但要花很长时间去理解和探索。
Aagain,谢谢smerny!这是你的代表你应得的:)
谢谢!
如果带有class .active的元素是动态添加的,那么使用on绑定的事件将起作用,并且点击事件将不会绑定 – karaxuna
'click(...)'是on(“click”,...的快捷方式。 )',但是当你在'on()'中添加上下文时,它会产生变化...尝试用'$(“body”)替换'$(document)'' – smerny
谢谢Karaxuna!那么,有没有其他的选择,而不使用.on,同时达到相同的效果?谢谢! –