Javascript 多个类的Efficient函数replaceWith
这个脚本的第二个“click”功能不起作用,我认为这只是一个语法问题。我对这个很陌生。但是我需要找到一种简单的方法,为一个vars数组调用一次live“click”函数 剧本很有效,只是第二部分不行 我正在寻找一种有效的方法来替换不同的变量数组,每个变量匹配一个分类链接,并且每次都不创建新函数 任何建议都很好 提前谢谢Javascript 多个类的Efficient函数replaceWith,javascript,jquery,Javascript,Jquery,这个脚本的第二个“click”功能不起作用,我认为这只是一个语法问题。我对这个很陌生。但是我需要找到一种简单的方法,为一个vars数组调用一次live“click”函数 剧本很有效,只是第二部分不行 我正在寻找一种有效的方法来替换不同的变量数组,每个变量匹配一个分类链接,并且每次都不创建新函数 任何建议都很好 提前谢谢 <script type="text/javascript"> $(window).load(function(){ $('a.pow')
<script type="text/javascript">
$(window).load(function(){
$('a.pow').live("click",function(e) {
webgl = $('<iframe src="http://s..."> </iframe>');
e.preventDefault();
$('#slider-wrapper').replaceWith(webgl);
});
$('a.biff').live("click",function(e) {
video = $('<iframe src="http://s..."> </iframe>');
e.preventDefault();
$('#slider-wrapper').replaceWith(video);
});
});
</script>
$(窗口)。加载(函数(){
$('a.pow').live(“单击”),函数(e){
webgl=$('');
e、 预防默认值();
$('#滑块包装器')。替换为(webgl);
});
$('a.biff').live(“单击”),函数(e){
视频=$('');
e、 预防默认值();
$('#滑块包装器')。替换为(视频);
});
});
html
下一个可能是
<div>
<a class="batman" href="">
</a>
</div>
</div><-- close slider wrapper -->
您可以给所有将加载iFrame的锚定一个公共类,将锚定的描述从类移动到自定义属性,并让事件处理程序对自定义属性执行操作
<div id="slider-wrapper">
<div>
<a class="link" href="" data-desc="pow">
</a>
<div>
<div>
<a class="link" href="" data-desc="biff">
</a>
<div>
<div>
<a class="link" href="" data-desc="batman">
</a>
<div>
</div>
在你的剧本中:
<script type="text/javascript">
var desc_url_map = {
"pow" : "http://s...",
"biff" : "http://s...",
"batman" : "http://s..."
};
$(window).load(function () {
$('a.link').live('click', function(evt) {
item = $('<iframe src="' + desc_url_map[this.dataset.desc] + '"></iframe>');
$('#slider-wrapper').replaceWith(item);
evt.preventDefault();
});
});
</script>
变量描述url映射={
“战俘”:http://s...",
“biff”:http://s...",
“蝙蝠侠”:http://s..."
};
$(窗口)。加载(函数(){
$('a.link').live('click',函数(evt){
项目=$('');
$(“#滑块包装”)。替换为(项目);
evt.preventDefault();
});
});
希望没有bug:)太好了,我会试试看,谢谢!我确实在另一篇文章中注意到了数据集,但我看到的集成在点击事件中看起来非常混乱。似乎是某个地方的bug。我已经检查过了,
e.preventDefault()
似乎工作正常,但我怀疑evt.preventDefault()
应该是修复方法,不是。我现在怀疑[this.dataset.desc]
。我想知道是否由于某种原因,data desc=“
没有进入事件流。尽管单击事件很好,但无论e.prevent如何,默认的href=“”
似乎都是发生的情况。。尽管使用evt.preventDefault()
click事件没有任何作用。让我去检查一下。抱歉。有几个错别字:滑动包装而不是滑动包装。关于evt,你是对的。请在此处查看工作版本:
<script type="text/javascript">
var desc_url_map = {
"pow" : "http://s...",
"biff" : "http://s...",
"batman" : "http://s..."
};
$(window).load(function () {
$('a.link').live('click', function(evt) {
item = $('<iframe src="' + desc_url_map[this.dataset.desc] + '"></iframe>');
$('#slider-wrapper').replaceWith(item);
evt.preventDefault();
});
});
</script>