2015-02-09 211 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(); 
});