jquery 中的元素无法读取 css 文件
Element in jquery unable read css file
我在同一个文件中有css样式和jquery脚本。但是我在jquery中的元素无法读取css。应该参与的元素是li,label,.selector,button。而且当我"单击此处"时,没有发出警报。
这是我的jquery脚本:
$(document).ready(function(){
$.ajax({
//type: "POST",
url: "http://10.1.17.20:8040/services/getArticle",
success: function (data) {
var data2 = data.result.target;
btnTarget="<ul>";
for(var i=0; i<data2.length; i++){
btnTarget += "<li'><input id='"+data2[i].id+"' type='checkbox'>";
btnTarget += "<label for='"+data2[i].id+"'>"+data2[i].target_name+"</label></li>";
}
btnTarget += "</ul>";
btnTarget += "<button type='button' id='btnMenu'>Click Here</button>"
$(".selector").append(btnTarget);
},error: function (xhr, ajaxOptions, thrownError) {alert("ERROR:" + xhr.responseText+" - "+thrownError);}
});
});
$("document").on("click", "#btnMenu", function(){
alert("You Click");
});
var nbOptions = 8;
var angleStart = -360;
// jquery rotate animation
function rotate(li,d) {
$({d:angleStart}).animate({d:d}, {
step: function(now) {
$(li)
.css({ transform: 'rotate('+now+'deg)' })
.find('label')
.css({ transform: 'rotate('+(-now)+'deg)' });
}, duration: 0
});
}
// show / hide the options
function toggleOptions(s) {
$(s).toggleClass('open');
var li = $(s).find('li');
var deg = $(s).hasClass('half') ? 180/(li.length-1) : 360/li.length;
for(var i=0; i<li.length; i++) {
var d = $(s).hasClass('half') ? (i*deg)-90 : i*deg;
$(s).hasClass('open') ? rotate(li[i],d) : rotate(li[i],angleStart);
}
}
$(document).on('click','.selector button',function(e){
toggleOptions($(this).parent());
});
这是 html 文件的一部分。
<section class="content">
<!-- Your Page Content Here -->
<div class="row">
<!-- right column -->
<div class="col-md-12">
<!-- Horizontal Form -->
<div class="box box-info">
<!-- form start -->
<form class="form-horizontal">
<div class="box-body">
<div class="form-group">
<div class="selector">
</div><!-- /.selector -->
</div>
</div><!-- /.box-body -->
</form>
</div><!-- /.box -->
</div><!--/.col (right) -->
</div><!-- /.row -->
</section>
在这里我也放了一些 css 样式。这只是少数。css 样式太长
.selector button:hover { background: #3071a9; }
.selector button:focus { outline: none; }
.selector ul {
position: absolute;
list-style: none;
padding: 0;
margin: 0;
top: -20px;
right: -20px;
bottom: -20px;
left: -20px;
}
.selector li {
position: absolute;
width: 0;
height: 100%;
margin: 0 50%;
-webkit-transform: rotate(-360deg);
transition: all 0.8s ease-in-out;
}
.selector li input { display: none; }
提前谢谢。
当你运行这个:
$("#btnMenu").on("click",function(){
alert("You Click");
});
btnMenu 尚不存在,因此它无法绑定 eventHandler。 你可以像这样使用事件委托:
$("body").on("click", "#btnMenu", function(){
alert("You Click");
});
它会起作用。
对于css,我的第一个想法是它与此有关:
<li'>
看到杂散的单引号了吗? 可能把事情搞砸了。 此外,你的很多jquery都在$(document).ready(function(){
之外,所以它可能运行得太早了。
尝试这个(清理了一些单引号:
$(document).ready(function(){
$.ajax({
//type: "POST",
url: "http://10.1.17.20:8040/services/getArticle",
success: function (data) {
var data2 = data.result.target;
btnTarget="<ul>";
for(var i=0; i<data2.length; i++){
btnTarget += "<li><input id="+data2[i].id+" type='checkbox'>";
btnTarget += "<label for="+data2[i].id+">"+data2[i].target_name+"</label></li>";
}
btnTarget += "</ul>";
btnTarget += "<button type='button' id='btnMenu'>Click Here</button>"
$(".selector").append(btnTarget);
},error: function (xhr, ajaxOptions, thrownError) {
//alert("ERROR:" + xhr.responseText+" - "+thrownError);
}
});
});
此外,您应该养成这样做的习惯,以防您要添加侦听器的元素在 DOM 中尚不存在:
$(document).on("click",$("#btnMenu"),function(){
alert("You Click");
});
而不是:
$("#btnMenu").on("click",function(){
alert("You Click");
});
相关文章:
- 使用Javascript读取CSS文件并动态更改页面
- 一种读取或更改CSS动画关键帧的方法
- 在打印代码中不读取Css
- 立即读取元素'CSS更改后的视觉属性
- 照片库css所选状态未被cookie读取
- 当父级被隐藏并读取子项的css时,防止下载背景图像
- jquery 中的元素无法读取 css 文件
- 使用 nodejs 和 express 读取 css/js 文件
- Bootstrap 不会编译 css 语法错误:无法读取属性 'toCSS'
- CSS/Javascript - 忽略只读输入以在表单中读取
- 如何在javascript中读取Psuedo类的CSS属性
- 使用JavaScript读取CSS值
- 通过CSS读取Web.Config值
- Angular JS如何读取html页面中加载的css文件名
- 使用JavaScript&CSS-无法读取属性'长度'的未定义
- 从样式表读取CSS属性
- 如何使用Javascript读取CSS属性值
- 从HTML读取css文件抛出错误
- 如何使用jQuery读取CSS内容值
- Javascript可以读取CSS中的元素's:hover状态吗?