我有一个无序列表,其列表项有表。这些列表项是可拖动和可排序的。我正在点击时隐藏列表元素。我有一个jquery代码,但它似乎不起作用。请帮我解决这个问题。 html代码是:
<ul class="sortable">
<li class="list" id="first">1</li>
<li class="list" id="second">2</li>
<li class="list" id="third">3</li>
<li class="list" id="fourth">4</li>
<li class="list" id="fifth">5</li>
<li class="list" id="sixth">6</li>
<li class="list" id="seventh">7</li>
<li class="list" id="eighth">8</li>
<li class="list" id="ninth">9</li>
<li class="list" id="tenth">10</li>
</ul>
使用的jquery是:
<script type="text/javascript">
$(function(){
$( ".sortable" ).sortable();
$( ".sortable" ).disableSelection();
});
//ONCLICK CLOSE
$(".list").click(function() {
var tblId=$(this).attr("id");
alert(tblId);
$("#"+tblId).hide();
});
</script>
我使用过一些,我不确定这些链接是否会成为功能障碍。页面中的链接是:
<!--script src="js/jQuery.min.js" type="text/javascript"></script-->
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
<!--script src="js/jquery-ui.js" type="text/javascript"></script-->
<link rel="stylesheet" type="text/css" href="css/jquery.contextmenu.css" />
<link rel="stylesheet" type="text/css" href="css/style.css" />
<link rel="stylesheet" type="text/css" href="css/menu.css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap.css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap.min.css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.css" />
<link rel="stylesheet" type="text/css" href="css/bootstrap-theme.min.css" />
<script src="js/jquery.contextmenu.js"></script>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="http://code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css" />
答案 0 :(得分:6)
您需要将代码包装在document.ready
$(document).ready(function(){
$(".list").click(function() {
var tblId=$(this).attr("id");
alert(tblId);
$("#"+tblId).hide();
});
});
答案 1 :(得分:4)
您需要将您的click函数包装在DOM ready handler中。
$(function () {
$(".sortable").sortable();
$(".sortable").disableSelection();
$(".list").click(function () {
var tblId = $(this).attr("id");
alert(tblId);
$("#" + tblId).hide();
});
});
目前,只有代码的第一个区块位于$(function() {...});
此外,您只需要包含一次jQuery,这样就可以删除:
<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
并将jquery.contextmenu.js
移至jQuery UI
脚本下方
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script src="js/jquery.contextmenu.js"></script>
答案 2 :(得分:1)
正如其他答案所示,将其移到dom ready handler
中jQuery(function ($) {
$(".sortable").sortable();
$(".sortable").disableSelection();
//move it inside the dom ready handler
//also there is no need to fetch the id of the element, you can pass the dom element reference directly to jQuery
$(".list").click(function () {
$(this).hide();
});
});