高效的函数replaceWith用于多个类

时间:2012-02-11 22:58:47

标签: javascript jquery

此脚本的第二个“单击”功能不起作用,我认为这只是一个语法问题。我对此很陌生。但我需要找到一种简单的方法,为一组变量调用实时“点击”功能一次。

脚本有效,而不是第二部分。

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

任何建议都会很棒!

提前致谢

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

HTML

<div id="slider-wrapper">
    <div>
        <a class="pow" href="">
        </a>
    </div>
    <div>
        <a class="biff" href="">
        </a>
    </div>

下一个可能是..

    <div>
        <a class="batman" href="">
        </a>
    </div>
</div><-- close slider wrapper -->

1 个答案:

答案 0 :(得分:0)

你可以给你的所有锚点加载iframes一个公共类,将锚点的描述从类移动到自定义属性,并让事件处理程序代替自定义属性。

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

希望没有错误:)