2015-02-09 187 views
0

所以我特地为得到这个jQuery代码代码:未捕获的异常

//some button 
var moreButton = $('<a href="#" class="buttonClass">Szczegóły</a>'); 

//load button to the first element with given class 
$('.someDiv').first().append(moreButton); 

//after button click we show/hide another div 

$(moreButton).on('click', function(e){ 
    e.preventDefault(); 
    $('.hiddenDiv').slideToggle();  
}); 

所以一切工作正常,但控制台显示此错误:

uncaught exception: Invalid arguments 

点击后事件。

我试图从点击功能中删除所有东西,只留下一些console.log,但问题仍然出现。

+0

那一行被抛出的异常?这也可能是一个问题与锚点的Unicode字符 – TankorSmash 2015-02-09 18:00:25

+5

无法重现 - > ** http://jsfiddle.net/1yf5katu/**,jQuery不会抛出这样的错误! – adeneo 2015-02-09 18:00:53

+0

还有其他玩法。要么是另一个库或其他代码。你需要修剪你的页面到最低限度,看看造成这个问题的原因。 – epascarello 2015-02-09 18:01:45

回答

0

你的代码是错误的..应该是这样的:

//some button 
var moreButton = '<a style="cursor: pointer" class="buttonClass">Szczegóły</a>'; 

这应该是一个字符串,而不是一个jQuery调用

也:

$('.buttonClass').on('click', function(e){ 
    e.preventDefault(); 
    $('.hiddenDiv').slideToggle();  
}); 
+0

没关系,除了被多次包装外 – adeneo 2015-02-09 18:06:11

+0

即使你做'$($(...))',它仍然会[work](http://jsfiddle.net/enmk3vys/)。 – 2015-02-09 18:07:43

+0

我也编辑了我的帖子..问题 – 2015-02-09 18:08:26

-2

确定。这是与其他代码的冲突。

有趣的是Safari开发工具比Firebug更有用。

-1
jQuery.noConflict(); 
(function($) { 
    $(function() { 
    // More code using $ as alias to jQuery 
    }); 
})(jQuery); 

jQuery.noConflict()

var $$ = $.noConflict(true); 
//some button 
var moreButton = $$("<a>",{ 
    'href': "#", 
    'class':"buttonClass", 
    'text':"Szczegóły" 
}); 

//load button to the first element with given class 
$$('.someDiv').first().append(moreButton); 

//after button click we show/hide another div 

$$(moreButton).on('click', function(e){ 
    e.preventDefault(); 
    $$('.hiddenDiv').slideToggle(); 
});