2010-12-04 25 views
6

私は、既存のボタンを削除して新しいボタンを追加するjavascript機能を持っています。ここでJqueryボタンを動的に追加する

はコードです:

function FunctionName(){ 
    ("button").remove(); 
    // This works fine. 
    //but however, with the following add code, I don;t get a jquery ui button. 
    var element = document.createElement("input"); 
    element.setAttribute("type","button"); 
    // other code 
    divName = get <div> by ID; 
    divName.appendChiled(element); 
} 

は、動的にjqueryのUIボタンを追加する方法はあります:

のように:

divName.add("button");

それは動作しませんでした...

+0

@Iznogood:動作しませんでした: – Kut

+0

@Iznogoodを動作しませんでした。 – Kut

+0

@ a-dilla:そのステートメントにはボタンが表示されません。少なくとも空白のボタンまたはその看板が表示されなければならない... – Kut

答えて

2

jQuを使用して任意の入力をボタンできることを確かめてください

$('#selector') // Replace this selector with one suitable for you 
    .append('<input type="button" value="My button">') // Create the element 
    .button() // Ask jQuery UI to buttonize it 
    .click(function(){ alert('I was clicked!');}); // Add a click handler 
+0

remove()の代わりにreplaceWith( "whatever-you-what-your )ボタン() – hellodally

+1

これは私を得る:Uncaught TypeError:オブジェクト#メソッド 'ボタン'を持たない –

19

を呼び出すことによってERY-UI。

DOMを準備する前に、変数としてボタンを作成することができます。

var $button = $.ninja.button({ 
    html: 'Post Your Answer' 
}).select(function() { 
    // Your action here. 
}); 

DOMが準備完了したら、ボタンを移動する場所を追加します。

$('body').append($button); 
+2

「http://ajax.googleapis.com/ajax/libs」のjQueryで/jquery/1.4.2/jquery.min.js ".button()は使用しないでください。それを取り除くと、うまくいった。 –

+0

Hmm、。ボタン()はjQueryコアからではなくjQuery UIから来るので、あなたが見ている違いに責任があるかどうかはわかりません。 – Richard

0

Ninja UIは上書きされますHTMLにハッキングすることなく、デフォルトでこのように動作します:jQueryのを使用してjQueryのUIのボタンを追加するにはbutton()

var element = document.createElement("input").button(); 
2

私は、次のコードで動的にボタンを作成しました。重要な部分は.button()部分です。それは私のためにうまくいくようです。

var self = this; 
var exitButton = $(document.createElement("a")); 
exitButton.attr({ 
    'href': '#', 
    'id': 'exitSlideshowButton', 
}); 
exitButton.click(function(event){ 
    event.preventDefault(); 
    self.exitSlideshow(); 
}); 
exitButton.text("Exit Slideshow Mode") 
exitButton.button(); 
exitButton.appendTo("body"); 
1

このコードは私のため

$('#selector').append('<input type="button" value="My button">');

$('#selector').click(function(){ alert('I was clicked!');});

+0

jQueryを使用しているだけでjQuery UIは使用しないため、この回答が気に入っています – Orbitus007

1

を働いていた私は@Stonyは、.button().click()方法は、元のセレクタ要素に追加されたことを除いて、近くにはなかったと思います実際のボタン。ボタンのIDを作成し、そのボタンを選択してbutton().click()を呼び出す必要があります。

これはおそらくbutton()への呼び出しで何らかの例外を引き起こしている可能性があります。

0

@Stonyから申し込みを受けてくれました。

function addMyButton(btID){ 
    var temp = "<button id='" + btID + "'>My Button</button>"; 
    $("#selector").html(temp); 
    $("#" + btID) 
     .button() 
     .click(function(){ 
      alert("I was clicked!"); 
     }); 
} 
関連する問題