私はすべての属性を設定し、自分のページに表示するボタンを動的に作成するためにjavascriptを使用しています。次に、jQueryを使用して、ホバーとクリックロジックを実装して、ボタンのクラスのレイアウトを変更します。ボタンが作成されると、それはクラスレイアウトになりますが、上に移動したりクリックしたりすると、ランタイムの前に作成するように変更されません。カスタムクラスボタンを動的にアクティブにする
javasciptコード:HTMLで
function createbutton()
{
var btn = document.createElement("input");
btn.setAttribute("type", "button");
btn.setAttribute("class", "fg-button ui-state-default ui-corner-all");
btn.setAttribute("value", "click!");
btn.setAttribute("onclick", "createbutton()");
theParent = document.getElementById("content");
theParent.appendChild(btn);
}
$(function(){
//all hover and click logic for buttons
$(".fg-button:not(.ui-state-disabled)")
.hover(
function(){
$(this).addClass("ui-state-hover");
},
function(){
$(this).removeClass("ui-state-hover");
}
)
.mousedown(function(){
$(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active");
if($(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active')){ $(this).removeClass("ui-state-active"); }
else { $(this).addClass("ui-state-active"); }
})
.mouseup(function(){
if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button, .fg-buttonset-multi .fg-button')){
$(this).removeClass("ui-state-active");
}
});
});
:
<input type="button" onclick="createbutton()" value="CLICK" >
<div id="content">
</div>
は、私が設定する必要があり、または私はボタンが作成されたときにjQueryの機能を有効にするには何かを行う必要がありますが、別の属性ですか?
編集(更新機能):
$('body').on(
{
mousedown: function()
{
$(this).parents('.fg-buttonset-single:first').find(".fg-button.ui-state-active").removeClass("ui-state-active");
if($(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active')){ $(this).removeClass("ui-state-active"); }
else { $(this).addClass("ui-state-active"); }
},
mouseup: function()
{
if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button, .fg-buttonset-multi .fg-button')){$(this).removeClass("ui-state-active");}
},
mouseenter: function()
{
$(this).addClass("ui-state-hover");
},
mouseleave: function()
{
$(this).removeClass("ui-state-hover");
}
}, '.fg-button:not(.ui-state-disabled)');
JSLintを使ってJSを実行し、得られた提案を考慮する必要があります。 – ANeves