スクリプトで<div>
sをフォーマットするコンストラクターを作成したので、その場で作成および破棄できます。
関数は次のとおりです。
function formatDiv(target,divId,divClass,content,onclick)
{
$("#"+target).append("<div id=\'" + divId + "\' class=\'" + divClass + "\' onclick=\'" + onclick + "\'>" + content +"</div>");
}
私がこれでやろうとしているのは、メインメニューのように、配列から文字列として関数呼び出しを渡し、それを'sプロパティ"Main()"
に割り当てることです。これは、jqueryを使用してコードをアップグレードする前は正常に機能していましたが、をクリックすると、コンソールは次のように戻ります。
これがjqueryの包含によって引き起こされたと仮定すると(古いバックアップでも機能するため)、コンストラクターをjqueryの.clickイベントハンドラーに更新することにしました。
その結果、次のようになります。<div>
onclick=""
<div>
ReferenceError: Main is not defined
function formatDiv(target,divId,divClass,content,onclick)
{
$("#"+target).append("<div id=\'" + divId + "\' class=\'" + divClass + "\'>" + content +"</div>");
$("#"+divId).click(function(){$(onclick)});
}
、および配列配管情報で呼び出される関数のフォーマットをonclick
パラメータfromから"Main()"
に変更しましたMain
。
これで、をクリックしても<div>
、何も起こらず、エラーも何も起こりません。
onclickハンドラーを自分に追加する最良の方法は何<div>
ですか?.clickを間違って使用していますか?Jqueryはまだ私には新しいので(w3schoolsのレッスンとjqueryのサイトのチュートリアルにもかかわらず)、私はそれを間違って使用していると推測せざるを得ません。どんな助けでもいただければ幸いです。
スクリプト全体は次のとおりです。
$(document).ready(function () {
$(Main);
//main menu
function Main()
{
var mainList = [">New List",">Show Lists",">Delete Lists"];
var onClick = [NewList,Main,Main];
var mainMenu = new Menu("Main Menu","menuMain",mainList,onClick);
mainMenu.contentMenu();
}
//new list menu
function NewList()
{
var mainList = ["> Create a New List"];
var onClick = [Main];
var newListMenu = new Menu("New List","menuMain",mainList,onClick);
newListMenu.contentMenu();
}
//menu class
function Menu(name,divClass,content,onclick)
{
$("#interface").html(null);
//title
formatDiv("interface",name,divClass,name,null);
//return
if(name != "Main Menu")
{
formatDiv(name,null,"return","^ Main Menu","Main()");
}
//display options
this.contentMenu = function()
{
for(i=0; i<content.length; i++)
{
formatDiv("interface",content+i,"menuContent",content[i],onclick[i]);
}
}
}
//format divs
function formatDiv(target,divId,divClass,content,onclick)
{
$("#"+target).append("<div id=\'" + divId + "\' class=\'" + divClass + "\'>" + content +"</div>");
$("#"+divId).click(function(){$(onclick)});
}
});