2010-12-04 6 views
6

У меня есть функция javascript, которая удаляет существующие кнопки и вместо них добавляет новые.Добавить динамическую кнопку Jquery ui

Вот код:

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 динамически: щ

как:

divName.add("button");

Он не работал ...

+0

@Iznogood: Это не сработало – Kut

+0

@Iznogood: Это не сработало. – Kut

+0

@ a-dilla: Эта кнопка не отображается с этим утверждением. По крайней мере, должна появиться пустая кнопка или знак ее ... – Kut

ответ

2

Довольно уверен, что вы можете использовать любой вход с jQu чень-интерфейс по телефону button()

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

, возможно, вместо remove() вы должны вызвать replaceWith ("what you you what your -button-to-be "). button() – hellodally

+1

this get me a: Uncaught TypeError: Object # не имеет метода 'button' –

19

Чтобы добавить кнопку JQuery UI с помощью JQuery:

$('#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 
+2

С jQuery на странице http://ajax.googleapis.com/ajax/libs /jquery/1.4.2/jquery.min.js ".button() не следует использовать. Убрав его, он сработал. –

+0

Хм,.button() поступает из jQuery UI, а не ядра jQuery, поэтому не уверен, что несет ответственность за разницу, которую вы видите. – Richard

0

Ninja UI работает таким образом, по умолчанию, без взлома в HTML, который получает переопределены.

Вы можете создать кнопку в виде переменной перед тем, как DOM будет готов.

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

Когда DOM готов, добавьте туда, куда бы вы ни выбрали кнопку.

$('body').append($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() методы были добавлены к исходному элементу селектора, а не фактическая кнопка. Вы должны создать идентификатор для кнопки, затем выберите эту кнопку и вызовите 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!"); 
     }); 
} 
Смежные вопросы