Javascript .一旦从上更改,则不会触发单击
我有下面的代码Javascript .一旦从上更改,则不会触发单击,javascript,jquery,jquery-tools,Javascript,Jquery,Jquery Tools,我有下面的代码 $(document).on('click','#container.pagination .active', function(){ var page = $(this).attr('p'); loadData(page); }); 返回的错误 未捕获的TypeError:对象#没有方法“on” 我发现一旦我禁用使用jQuery1.8.2的jQueryUI1.9.
$(document).on('click','#container.pagination .active', function(){
var page = $(this).attr('p');
loadData(page);
});
返回的错误
未捕获的TypeError:对象#没有方法“on”
我发现一旦我禁用使用jQuery1.8.2的jQueryUI1.9.0,问题就会得到解决。但是jqui是我的项目的重要部分,所以它不能从页面中删除
我尝试了一种替代方法,可以帮助我在不使用.on的情况下获得相同的结果,但似乎它甚至没有触发。有没有语法错误?
我换了
$(document).on('click','#container.pagination .active', 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与.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
uncaughttypeerror:Object#在带有分页的jq_iface_testScores_上没有方法。js:176
(匿名函数)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,它是utlizie JQ1.7.2。我认为它与我的JQ1.9.1的函数相矛盾。我试了好几页。经测试,即使只是加载jqtool1.2,也会在没有实际使用它的情况下导致问题。
如何在不删除jquerytool 1.2的情况下解决此问题?每次都返回相同的错误消息
==分辨率====
在斯梅尼的持续帮助下,我终于有了一个解决方案,问题实际上是处理过时的jquery.tool库问题在于原因,因为jq.tool库是1.2.3而不是1.2.7。有时候,事情很简单,但需要很长时间才能理解和探索
aa谢谢你,斯默尼!这是你应得的代表:)
谢谢大家!
$(document).on('click','#container .pagination .active', function(){
及
在第一种方法中,它使用委托。这意味着在绑定之前,选择器中的元素不必存在
在第二种情况下,在绑定之前,元素需要在那里
如果$(文档)
不起作用,请尝试选择正文:
$("body").on('click','#container .pagination .active', function(){
只有当您在某个点动态加载这些元素时,这才是必需的。。。如果立即加载它们,那么我假设您只需要将代码包装在$(document).ready(function(){…})
块中:
$(document).ready( function() {
$("body").on('click','#container .pagination .active', function(){
...
});
以下是可能的选择:
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+
如果动态添加了类为.active的元素,则与on绑定的事件将起作用,而与click绑定的事件将不会
click(…)
是on(“click”,…)
的快捷方式,但当您在on()
中添加上下文时,会产生不同。。。尝试将$(文档)
替换为$(“正文”)
谢谢Karaxuna!那么,有没有一种替代方法,不使用.on,而同时达到同样的效果?谢谢你为什么不想用它呢?在旧版本的jquery@Adam你为什么不升级jQuery UI呢?他已经在使用1.7+,升级到1.7+,并且已经在()上使用了on
$(document).ready( function() {
$("body").on('click','#container .pagination .active', function(){
...
});
$(selector).live(events, data, handler); // jQuery 1.3+
$(document).delegate(selector, events, data, handler); // jQuery 1.4.3+
$(document).on(events, selector, data, handler); // jQuery 1.7+