A±
/ * jQuery Pop Menu Версия: бета Автор: Guc. http://www.gucheen.pro На основе jQuery 2.0.3 * / ( function ( $ ) { $ . fn . popmenu = function ( options ) { var settings = $ . extend ({ 'controller' : true , 'width ' : ' 300px ' , ' background ' : ' # 34495e ' , ' focusColor ' : ' # 1abc9c ' , ' borderRadius ' : ' 10px ' , ' 'top' : '50' , 'left' : '0' , 'iconSize' : '100px' , 'color' : '#fff' , 'border' : '0px' }, options ); если ( настройки . контроллер === истинно ) { вар temp_display = 'ни' ; } else { var temp_display = 'block' ; } var tar = $ ( this ); var tar_body = tar . дети ( 'ul' ); var tar_list = tar_body . дети ( 'li' ); var tar_a = tar_list . дети ( 'a' ); var tar_ctrl = tar . дети ( '.pop_ctrl' ); function setIt () { tar_body . CSS ({ 'дисплей' : temp_display , 'позиция' : 'абсолютным' , 'Рентабельность-топ' : - настройки . сверху , 'Запас-влево' : - настройки . слева , 'фон' : настройки . фон , 'ширина' : настройки . ширина , 'флоат' : 'левый' , 'обивка' : '0' , 'граница радиуса' : настройки . borderRadius , 'граница' : настройки . граница }); tar_list . css ({ 'display' : 'block' , 'color' : settings . color , 'float' : 'left' , 'width' : settings . iconSize , 'height' : settings . iconSize , 'text-align' : ' center ' , ' border-radius ' : settings . borderRadius }); tar_a . css ({ 'text-decoration' : 'none' , 'color' : settings . color }); tar_ctrl . hover ( function () { tar_ctrl . css ( 'cursor' , 'pointer' ); }, function () { tar_ctrl . css ( 'cursor' , 'default' ) }); tar_ctrl . click ( функция ( e ) { e . preventDefault (); tar_body . show ( 'fast' ); $ ( document ). mouseup ( function ( e ) { var _con = tar_body ; if (! _con . is ( e . target ) && _con . имеет ( e . target ). length === 0 ) { _con . hide (); } // _ con.hide (); некоторые функции, которые вы хотите }); }); tar_list . hover ( function () { $ ( this ). css ({ 'background' : settings . focusColor , 'cursor' : 'pointer' }); }, function () { $ ( this ). css ({ 'background' : настройки . фоны , 'курсор' : ' по умолчанию' }); }); } return setIt (); };} ( jQuery )); У меня есть этот вопрос, потому что я использую ниже JQuery javascript для отображения всплывающего меню на странице jsp.
<script>
$(function(){
/* $('#demo_box').popmenu(); */
$('#ListOrLayout').popmenu(
{
'background':'#fff',
'color':'#000',
'focusColor':'#21a0df',
'borderRadius':'0',
'top': '0',
'left': '0',
'border':'1px solid #211d1d'
}
);
/* $('#demo_box_3').popmenu({'width': '200px',
'background':'#223','focusColor':'#ee5','borderRadius':'10px', 'top':
'70', 'left': '-40', 'color':'#1265fe','border':'3px solid #0035fe'});
*/
})
</script>
Я использую этот popmenu.js после того, как я подключился к строкам HTML, откликаемым ajax json из внешнего контроллера Spring-MVC, чтобы отобразить всплывающее меню на странице. Поскольку я снова подключаюсь к строкам HTML, поэтому я должен использовать функцию делегата для отображения меню. Если я использую ниже код без «делегирования», все это хорошо.
<div id="content">
<table border = "1">
<tr>
<td><input type="checkbox" id="maincheck" name="maincheck"/></td>
<td>??/??</td>
<td>??</td>
<td>??</td>
<td>??????</td>
<td>
<div id="ListOrLayout"><span class="fa fa-list-ul"></span>
<span class="pop_ctrl"><i class="fa fa-caret-down"></i></span>
<ul>
<li><div>????</div></li>
<li><span>??
</span> <span><i
class="fa fa-list-ul"></i></span></li>
<li><a href="javascript:getFileLayout();"><span>??
</span> <span><i
class="fa fa-th"></i></span></a></li>
</ul>
</div>
...
<script src="${pageContext.request.contextPath}/js/jquery.min.js"></script>
<script src="${pageContext.request.contextPath}/js/jquery.popmenu.js">
</script>
А также HTML, который я использую:
<script src="${pageContext.request.contextPath}/js/jquery.min.js">
jQuery("#content").on("#ListOrLayout", popmenu(
{'background':'#fff',
'color':'#000',
'focusColor':'#21a0df',
'borderRadius':'0',
'top': '0',
'left': '0',
'border':'1px solid #211d1d'}
));
</script>
Теперь я пишу JS:
<script>
function needReloadInAsyncLoad()
{
//ajax???????????js??
//alert("async");
new_element=document.createElement("script");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","${pageContext.request.contextPath}/js/jquery.min.js");// ??????jquery.min.js
document.body.appendChild(new_element);
new_element=document.createElement("script");
new_element.setAttribute("type","text/javascript");
new_element.setAttribute("src","${pageContext.request.contextPath}/js/jquery.popmenu.js");// ??????jquery.popmenu.js
document.body.appendChild(new_element);
$('#ListOrLayout').popmenu(
{
'background':'#fff',
'color':'#000',
'focusColor':'#21a0df',
'borderRadius':'0',
'top': '0',
'left': '0',
'border':'1px solid #211d1d'
}
);
}
</script>
Но это нефункционально. Я не знаю точное событие popmenu.js для делегирования предку. Поэтому любые предложения были бы очень оценены!
javascript,jquery,html,css,delegates,