Как пересилить обработчик клика?
Здравствуйте!
Есть вот такой html:
<div class="btn-toolbar" id="toolbar">
<div class="btn-wrapper" id="toolbar-delete">
<button onclick="if (document.adminForm.boxchecked.value == 0) { alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST')); } else { if (confirm('Delete selected files?')) { Joomla.submitbutton('fsdelete.deleteFSSelected'); } }" class="btn btn-small">
<span class="icon-delete"></span>
Delete selected files</button>
</div>
<div class="btn-wrapper" id="toolbar-delete">
<button onclick="Joomla.submitbutton('fsdelete.deleteFSAllFiles');" class="btn btn-small">
<span class="icon-delete"></span>
Delete all files from FS</button>
</div>
<div class="btn-wrapper" id="toolbar-help">
<button onclick="Joomla.popupWindow('http://siteforhelp.ru', 'Help', 700, 500, 1)" rel="help" class="btn btn-small">
<span class="icon-question-sign"></span>
Help</button>
</div>
<div class="btn-wrapper" id="toolbar-options">
<button onclick="location.href='index.php?option=com_config&view=component&component=com_vm3delpics&path=&return=aHR0cDovL2xvY2FsaG9zdC9hc3UxNzAzMjIvYWRtaW5pc3RyYXRvci9pbmRleC5waHA%2Fb3B0aW9uPWNvbV92bTNkZWxwaWNzJnZpZXc9ZnNkZWxldGU%3D';" class="btn btn-small">
<span class="icon-options"></span>
Options</button>
</div>
</div>
Пытаюсь с помощью подключаемого js-фала с кодом:
jQuery("#toolbar > #toolbar-delete:nth-of-type(1)").click(function (e) {
e.preventDefault();
alert("Here we are!");
})
сделать так, чтобы первым по клику на первую кнопку реагировал мой обработчик. Не получается :) В чем ошибка? Скажите пожалуйста. |
кажется я button забыл.
Такой код тоже не срабатывает:
jQuery("#toolbar > #toolbar-delete:nth-of-type(1) .btn.btn-small").click(function (e) {
e.preventDefault();
alert("Here we are!");
})
|
borus, ИД должен быть уникальным на странице...
|
Цитата:
|
урать все лишнее
jQuery(".btn-small").click(function (e) {
e.preventDefault();
alert("Here we are!");
});
js в html коде плохая практика |
ksa,
сделал #toolbar-delete уникальным, но это пока не помогло :) |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div class="btn-toolbar" id="toolbar">
<div class="btn-wrapper" id="toolbar">
<button onclick="if (document.adminForm.boxchecked.value == 0) { alert(Joomla.JText._('JLIB_HTML_PLEASE_MAKE_A_SELECTION_FROM_THE_LIST')); } else { if (confirm('Delete selected files?')) { Joomla.submitbutton('fsdelete.deleteFSSelected'); } }" class="btn btn-small">
<span class="icon-delete"></span>
Delete selected files</button>
</div>
<div class="btn-wrapper" id="toolbar-delete">
<button onclick="Joomla.submitbutton('fsdelete.deleteFSAllFiles');" class="btn btn-small">
<span class="icon-delete"></span>
Delete all files from FS</button>
</div>
<div class="btn-wrapper" id="toolbar-help">
<button onclick="Joomla.popupWindow('http://siteforhelp.ru', 'Help', 700, 500, 1)" rel="help" class="btn btn-small">
<span class="icon-question-sign"></span>
Help</button>
</div>
<div class="btn-wrapper" id="toolbar-options">
<button onclick="location.href='index.php?option=com_config&view=component&component=com_vm3delpics&path=&return=aHR0cDovL2xvY2FsaG9zdC9hc3UxNzAzMjIvYWRtaW5pc3RyYXRvci9pbmRleC5waHA%2Fb3B0aW9uPWNvbV92bTNkZWxwaWNzJnZpZXc9ZnNkZWxldGU%3D';" class="btn btn-small">
<span class="icon-options"></span>
Options</button>
</div>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script>
jQuery("#toolbar-delete .btn-small").click(function (e) {
e.preventDefault();
alert("Here we are!");
});
</script>
</body>
</html>
|
j0hnik,что-то не срабатывает. #toolbar-delete уже уникальный. Может быть дело в том, что в js-файле есть ещё код другой и я не правильно всё расставил по местам?
Вот полный код файла:
jQuery( document ).ready(function() {
var time_limit = 25;//временной лимит(сек) на ответ сервера
var i = 0;
var go = 1;//признак того, что нужно продолжать считывать информацию о файлах
var from = 0;//с какого файла по порядку начинаем проверять
var read_cnt = 3;//число проверяемых файлов
var request = function(){
jQuery.getJSON('index.php?option=com_vm3delpics&task=fsdelete.read&format=json'
, {
data: {
"time_limit":time_limit,
"from":from,
"read_cnt":read_cnt
}
})
.always(function(r) {
var start = new Date().getTime();
if (!r.success && r.message){
alert(r.message);
}
if (r.messages){
Joomla.renderMessages(r.messages);
}
if (r.data){
//debugger;
var elapsed = new Date().getTime() - start;
//alert(elapsed);
if(elapsed/1000 - 0.5 < time_limit){
read_cnt = r.data.read_cnt+1;
}
else{
if(r.data.read_cnt > 1) read_cnt = r.data.read_cnt-1;
else alert("Слишком медленный ответ сервера! Не могу уменьшить число считываемых файлов");
}
from = r.data.from + r.data.read_cnt;
//отображение найденных файлов
var tbl = jQuery("#fsscanres")[0];
var rws = tbl.rows;
var lst = rws[rws.length - 2];
var cls = lst.cells.length;
var rows_length = rws.length;
for (var key in r.data.files) {
i++;
var ro = tbl.insertRow(rws.length - 1);
for (var j = 0; j < cls; j++){
var ce = ro.insertCell(-1);
switch(j){
case 0 :
ce.innerHTML = rows_length + i - 2;
break;
case 1 :
ce.innerHTML = '<input type="checkbox" id="cb0" name="cid[]" value="'+ r.data.files[key]["file_url"] + '" onclick="Joomla.isChecked(this.checked);">';
break;
case 2 :
ce.innerHTML = r.data.files[key]["file_url"];
break;
}
}
}
i = 0;
}
if(r.data.go) request();
});
}
request();
});
jQuery("#toolbar-delete .btn-small").click(function (e) {
e.preventDefault();
alert("Here we are!");
});
|
Цитата:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
$('button').each(function(){
var one=this.onclick;
this.onclick=null;
$(this).click(function(){
two();
one();
});
});
function two(){
alert(2);
};
});
</script>
</head>
<body>
<button onclick='alert(1)'>Test</button>
</body>
</html>
|
Цитата:
Т.ч. остается только просто поменять местами сами вызовы функций... |
| Часовой пояс GMT +3, время: 13:26. |