【问题标题】:copying link id to an input field将链接 ID 复制到输入字段
【发布时间】:2010-03-22 14:35:54
【问题描述】:

当链接是图像时,代码可以正常工作。但是当有 Flash 电影时我有一个问题。当需要将链接 id 复制到 imagesID 输入框时,会在地址栏中打开另一个页面,其中未定义。

<script type="text/javascript">
var $input = $("#imagesID"); // <-- your input field

$('a.thumb').click(function() {
    var value = $input.val();
    var id = $(this).attr('id');
    if (value.match(id)) {
        value = value.replace(id + ';', '');
    }
    else {
        value += id + ';';
    }
    $input.val(value);
});
</script>
  <ul class="thumbs">
    <li>
        <a class="thumb" id="62">
            <img src="/FLPM/media/images/2A9L1V2X_sm.jpg" alt="Dock" id="62" class="floatLeft" />
        </a>
            <br />

        <a href="?Process=&IMAGEID=62" class="thumb"><span class="floatLeft">DELETE</span></a>
    </li>

    <li>
        <a class="thumb" id="61">
            <img src="/FLPM/media/images/0E7Q9Z0C_sm.jpg" alt="Desert Landscape" id="61" class="floatLeft" />
        </a>
            <br />
        <a href="?Process=&IMAGEID=61" class="thumb"><span class="floatLeft">DELETE</span></a>

    </li>

    <li>
        <a class="thumb" id="60">
            <img src="/FLPM/media/images/8R5D7M8O_sm.jpg" alt="Creek" id="60" class="floatLeft" />
        </a>
            <br />
        <a href="?Process=&IMAGEID=60" class="thumb"><span class="floatLeft">DELETE</span></a>
    </li>
    <li>
        <a class="thumb" id="59">
            <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://active.macromedia.com/flash4/cabs/swflash.cab#version=4,0,0,0" id="59" width="150" height="100" style="float:left; border:5px solid #CCCCCC; margin:5px 10px 10px 0;">
                <param name="scale" value="exactfit">
                <param name="AllowScriptAccess" value="always" />
                <embed name="name" src="http://www.refinethetaste.com/FLPM/media/flashes/7P4A6K7M.swf"
                quality="high" scale="exactfit" width="150" height="100"
                type="application/x-shockwave-flash"
                AllowScriptAccess="always"
                pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
                P1_Prod_Version=ShockwaveFlash">
                </embed>
            </object> 
        </a>

            <br />
        <a href="?Process=&IMAGEID=59" class="thumb"><span class="floatLeft">DELETE</span></a>
    </li>
</ul>

【问题讨论】:

    标签: jquery flash


    【解决方案1】:

    并不是所有的 a.thumb 元素都有 id 属性,尤其是与 flash 对象关联的那个。

    【讨论】:

    • 我在这里复制粘贴时误删了。刚刚修复了代码。请再看一遍。
    【解决方案2】:
    1. 您有一些带有“thumb”类的链接,它们没有 ID 或 href,但会从您的查询代码中调用
    2. ID 不能以整数开头
    3. ID 在文档中必须是唯一的,但情况并非如此

    【讨论】:

    • 当我复制粘贴到这里时,我错误地删除了 Flash 电影的 href。刚刚修复了代码。请再看一遍。
    【解决方案3】:

    您是否尝试过阻止默认浏览器操作?

    $('a.thumb').click(function(event) {
            event.preventDefault();
            // ... snip ...
    }
    

    【讨论】:

    • Sean Vieira,event.preventDefault()return false 有什么不同吗?我以前没见过这个,它看起来很有用:)
    • 是和不是。不,因为在由事件(listeneron-x)调用的函数中使用时,return falseevent.preventDefault 具有相同的效果。是的,因为它提供了对事件冒泡的控制,而无需返回值。 (这也是一个 jQuery 抽象——防止事件执行/冒泡的浏览器内方法略有不同。)请参阅:en.wikipedia.org/wiki/DOM_events
    猜你喜欢
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 2014-11-05
    • 2012-07-24
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    • 2019-08-14
    相关资源
    最近更新 更多