Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 多个类的Efficient函数replaceWith_Javascript_Jquery - Fatal编程技术网

Javascript 多个类的Efficient函数replaceWith

Javascript 多个类的Efficient函数replaceWith,javascript,jquery,Javascript,Jquery,这个脚本的第二个“click”功能不起作用,我认为这只是一个语法问题。我对这个很陌生。但是我需要找到一种简单的方法,为一个vars数组调用一次live“click”函数 剧本很有效,只是第二部分不行 我正在寻找一种有效的方法来替换不同的变量数组,每个变量匹配一个分类链接,并且每次都不创建新函数 任何建议都很好 提前谢谢 <script type="text/javascript"> $(window).load(function(){ $('a.pow')

这个脚本的第二个“click”功能不起作用,我认为这只是一个语法问题。我对这个很陌生。但是我需要找到一种简单的方法,为一个vars数组调用一次live“click”函数

剧本很有效,只是第二部分不行

我正在寻找一种有效的方法来替换不同的变量数组,每个变量匹配一个分类链接,并且每次都不创建新函数

任何建议都很好

提前谢谢

<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>