を持つ要素にクラスを追加が、私はこのコードでエラーを得たクラス名のツリービュー
$(this + '.treeview').addClass('active');
エラーが
Uncaught Error: Syntax error, unrecognized expression: [object HTMLLIElement].treeview
がどのように修正するのですか?
を持つ要素にクラスを追加が、私はこのコードでエラーを得たクラス名のツリービュー
$(this + '.treeview').addClass('active');
エラーが
Uncaught Error: Syntax error, unrecognized expression: [object HTMLLIElement].treeview
がどのように修正するのですか?
オブジェクトと文字列を連結しています。クラスに一致する子どもたちを選択するために
$(this)
、その後apiを使用します:何がやりたいことはthis
に代表されるDOMノードの子を見つけている場合は、まずjQuery
インスタンスを作成する必要があります
$(this).find('.treeview')...
それとも、使用することができます:あなたはすべての子孫を探しているなら
$(this).children('.treeview')...
しかし、あなたは.find()
使用したいです速記形式:
$('.treeview', this)...
その作業は... $(this).find( '。treeview')を使用しています – Aidin
私は最終的に「上記の文脈での完全なコード
$('.dinz-submenu').click(function (e) {
e.stopPropagation();
});
$('.sidebar-menu li').click(function (e) {
if ($(this).hasClass('treeview')) {
$('.sidebar-menu li ').removeClass('active');
$('.treeview-menu').slideUp();
if(!$(this).find('.treeview-menu').is(':visible')){
$(this).children('.treeview-menu').slideDown();
}
$(this).addClass('active');
return false;
} else {
if ($(this).hasClass('dinz-submenu')) {
$('.treeview-menu li ').removeClass('active');
} else {
$('.treeview-menu').slideUp();
$('.sidebar-menu li ').removeClass('active');
}
}
});
'this'はDOM要素であり、そしてあなた。ここ@zzzzBov答え
を使用して私の問題を解決しましたそれを動作させない文字列と連結しようとしています。 '$'コンストラクタはDOM要素、セレクタ(文字列)のいずれかをとりますが、両方をとることはありません。 2つを組み合わせようとするあなたの意図は何でしたか? – FuriousD
私は、サブメニューがクリックされたときにサブメニュー要素liを有するメインメニューとしてli要素を有する。サブメニューはメインメニュー要素にあるので、メインメニューもクリックされる。問題は、メインメニューをアクティブに設定することでした しかし、私はそれを避けるためにサブメニューelemenにstopPropagationを入れました。 – Aidin