リスト内の2つのボタンのCSSを切り替えることを試みています。 1つをクリックすると、もう1つはボーダーを持たず、その逆もあります。ここに私のコードです:最初のクリックでcss()が起動しない
function navigate_menu(event, ec){
$(event).css("border-top", "3px solid rgba(102,205,0, 0.8)");
var search_id=$(event).attr("name");
var chartid = "pie_chart_"+$(event).attr("name");
var editid = "edit_"+$(event).attr("name");
if(ec=="c"){
$(".li-edit").css("border-top", "0px solid rgba(102,205,0, 0.8)");
$("#"+chartid).appendTo($("#chart_"+search_id+"_container"));
$("#"+editid).css("display","none");
$("#"+chartid).css("display","block");
}else{
$(".li-chart").css("border-top", "0px solid rgba(102,205,0, 0.8)");
$("#"+editid).appendTo($("#chart_"+search_id+"_container"));
$("#"+chartid).css("display","none");
$("#"+editid).css("display","block");
}
}
HTML:
+"<ul id=\"navigation_list\">"
+"<li onclick=\"navigate_menu(this,'c')\" class=\"li-chart\" name=\""+search_id+"\">Chart & Legend</li>"
+"<li onclick=\"navigate_menu(this,'e')\" class=\"li-edit\" name=\""+search_id+"\">Edit Chart\\Change Data</li>"
+"</ul>"
だから、私が最初にクリックしたときに、何も起こりませんし、それが動作する秒後。次に、他のボタンをクリックすると、同じ(最初の何もない、2番目の作品)。最初のクリックで、親(ul
)をクリックしたと思うかもしれませんが、どのように修正するのか分かりません。この「メニュー」はJS関数から複数の要素に追加されるので、残念です。
私もaddClass()
とremoveClass()
を試しましたが、それと同じ結果です。
ありがとうございました!
あなたのイベントを処理するためのjQueryを使用しないのはなぜそれらをインラインにするのではなく、 – Adjit
@Adjitは、ドキュメントの読み込みが遅いためです。外部ソースなどから約40のグラフを読み込みます。準備が整ったら少し遅くなります。 – jzippy
'ready()'でイベントを委譲する必要はありません。 '$(document).on( 'click' '.li-chart'、function(){}); ' – Adjit