То, что я пытаюсь сделать, это заменить клик на JQuery.
<h: commandLink onClick = "hi" value = "Button"/>
в
<h: commandLink onClick = "function (hi)" value = "Button"/>
Можно ли выбрать внутри команды с помощью JQuery? И более конкретно вы можете сделать это с помощью JSF-тегов?
Спасибо за помощь!
Догадаться. Вот ответ.
$( ".class" ).attr('onclick', 'whatever I want it to be');
Таким образом, вы можете сделать это так.
<h:commandLink class='btn' onClick="hi" value="Button"/>
var text = $('.btn').attr('onclick');
$('.btn').attr('onclick', "function("+text+")");
Возьмите его немного дальше и сделайте это для каждой кнопки на экране.
$('.btn').each(function () {
var text = $(this).attr('onclick');
$(this).attr('onclick', "function("+text+")");
});
Вы можете дать кнопке id
или class
и вызвать функцию click()
.
РЕДАКТИРОВАТЬ
$( ".class" ).click(function() { //Or #id
//Do work
});
Таким образом, любой элемент с этим class
или id
вызовет эту функцию, он по-прежнему работает как событие onClick
Чтобы выбрать атрибут namespaced, вы можете использовать фильтр. Здесь демо с использованием вашего кода:
$('button').filter(function() { return typeof $(this).attr('h:commandlink') != 'undefined'; }).attr('onclick','alert(111)').html('Modified onClick');
Проверка "undefined" важна, потому что ваш атрибут не имеет значения, но он все еще существует.
Вместо того, чтобы предоставлять вызов функции в виде строки, используйте метод jQuery "on" для присоединения события