jQuery正在替换元素id,但以后无法识别它
我有一个播放按钮和一个前进按钮 因此,HTML是:jQuery正在替换元素id,但以后无法识别它,jquery,Jquery,我有一个播放按钮和一个前进按钮 因此,HTML是: <div id="control"> <a href="#" id="pause"></a> <a href="#" id="next"></a> </div> 您可以使用播放/暂停处理程序,如下所示: $('#control').delegate("#pause", "click", function(event) { $(this).css("
<div id="control">
<a href="#" id="pause"></a>
<a href="#" id="next"></a>
</div>
您可以使用播放/暂停处理程序,如下所示:
$('#control').delegate("#pause", "click", function(event) {
$(this).css("background-image", "url(../images/controls_play.png)")
.attr('id', 'play');
}).delegate("#play", "click", function(event) {
$(this).css("background-image", "url(../images/controls_pause.png)")
.attr('id', 'pause');
});
。现在,它不再在页面加载时查找具有匹配ID的控件,而是侦听click
事件并在事件发生时检查ID,这将为您提供所需的操作更改效果。请注意,这比您知道元素的确切位置更有效。您可以将其用于播放/暂停处理程序,如下所示:
$('#control').delegate("#pause", "click", function(event) {
$(this).css("background-image", "url(../images/controls_play.png)")
.attr('id', 'play');
}).delegate("#play", "click", function(event) {
$(this).css("background-image", "url(../images/controls_pause.png)")
.attr('id', 'pause');
});
。现在,它不再在页面加载时查找具有匹配ID的控件,而是侦听click
事件并在事件发生时检查ID,这将为您提供所需的操作更改效果。请注意,这比您知道元素的确切位置更有效。尝试.live('click',function(){})
你可以尝试另一种方法。将事件绑定到类,然后更改id。然后在执行任何操作之前测试id尝试.live('click',function(){})
你可以尝试另一种方法。将事件绑定到一个类,然后更改id。然后在执行任何操作之前测试id我认为更改id时,单击事件不会附加到try live或delegate
$('#pause').live("click", function(event) {
$(this).css("background-image", "url(../images/controls_play.png)");
$(this).attr('id', 'play');
});
$('#play').live("click",function(event) {
$(this).css("background-image", "url(../images/controls_pause.png)");
$(this).attr('id', 'pause');
});
$('#next').live("click",function(event) {
$('#pause').css("background-image", "url(../images/controls_play.png)");
$('#pause').attr('id', 'play');
});
我认为当您更改ID try live或delegate时,单击事件不会附加
$('#pause').live("click", function(event) {
$(this).css("background-image", "url(../images/controls_play.png)");
$(this).attr('id', 'play');
});
$('#play').live("click",function(event) {
$(this).css("background-image", "url(../images/controls_pause.png)");
$(this).attr('id', 'pause');
});
$('#next').live("click",function(event) {
$('#pause').css("background-image", "url(../images/controls_play.png)");
$('#pause').attr('id', 'play');
});
您可以尝试做的不是引用
播放
或暂停
,而是引用控件
,并根据单击的内容设置控件
内部的HTML。您还可以通过类来区分play
和pause
。举个例子,你会有一些像
$('#control').click(function(event) {
if($(this).attr('class') == 'play') {
$(this).css("background-image", "url(../images/controls_pause.png)");
$(this).attr('class', 'pause');
}
if($(this).attr('id') == 'pause') {
$(this).css("background-image", "url(../images/controls_play.png)");
$(this).attr('class', 'play');
}
});
$('#next').click(function(event) {
$('#control').css("background-image", "url(../images/controls_play.png)");
$('#control').attr('id', 'play');
});
您还可以通过将背景图像分配给类来节省几行代码,这样您就不需要显示
.css('background-image','x.gif')
的行,因为这些属性将在css中。您可以尝试做的是不引用play
或pause
,您可以引用control
并根据单击的内容设置control
内部的HTML。您还可以通过类来区分play
和pause
。举个例子,你会有一些像
$('#control').click(function(event) {
if($(this).attr('class') == 'play') {
$(this).css("background-image", "url(../images/controls_pause.png)");
$(this).attr('class', 'pause');
}
if($(this).attr('id') == 'pause') {
$(this).css("background-image", "url(../images/controls_play.png)");
$(this).attr('class', 'play');
}
});
$('#next').click(function(event) {
$('#control').css("background-image", "url(../images/controls_play.png)");
$('#control').attr('id', 'play');
});
您还可以通过将背景图像分配给类来节省几行代码,这样您就不需要显示.css('background-image','x.gif')
,因为这些属性将在css中。您可以用来存储按钮的状态。
因此,要将按钮的状态设置为播放使用:
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
然后,要获取按钮的状态,只需执行以下操作:
$("#playPause").data("state");
因此,单击“执行”按钮:
$("#playPause").click(function(event) {
var state = $("#playPause").data("state");
if(state === "play"){
$("#playPause").css("background-image", "url(../images/controls_pause.png)").data("state","pause");
}
else {
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
}
});
单击“下一步”时:
$('#next').click(function(event) {
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
});
您可以使用存储按钮的状态。
因此,要将按钮的状态设置为播放使用:
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
然后,要获取按钮的状态,只需执行以下操作:
$("#playPause").data("state");
因此,单击“执行”按钮:
$("#playPause").click(function(event) {
var state = $("#playPause").data("state");
if(state === "play"){
$("#playPause").css("background-image", "url(../images/controls_pause.png)").data("state","pause");
}
else {
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
}
});
单击“下一步”时:
$('#next').click(function(event) {
$("#playPause").css("background-image", "url(../images/controls_play.png)").data("state","play");
});
+1-我同意类应优先于更改ID。+1-我同意类应优先于更改ID。