簡體   English   中英

HTML對象標簽的“數據”屬性不會隨着jQuery的更改而更新

[英]HTML Object tag 'data' attribute wont update with jQuery change

從該JSFiddle中可以看到: http : //jsfiddle.net/cYxy7/1/

我正在使用jQuery更改對象標簽的'數據'屬性。 但是,即使我能夠更改源代碼中的data屬性,該對象的實際數據流也不會更改,並且會播放相同的視頻。 有人知道解決方法嗎?

我嘗試了幾種“刷新”技術,但到目前為止都沒有奏效。

HTML:

<object data="currentURL"></object>

jQuery的:

$(document).ready(function(){
    $('body').on('click', "button#switch", function() {
    $( "object" ).attr("data", newURL);
});        
})

Flash對象要重新加載非常棘手。

嘗試使用此簡單的flashloaderSWFObject

編輯:

我發現了一些陌生的東西。 在更改對象的框模型之前,更改參數不起作用:

$(document).ready(function(){
    $('body').on('click', "button#switch", function() {

    $( 'object param[name="flashvars"]' ).attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");

     $( "object").attr('data',  "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi").hide().show(); 

});        
})

這完美地工作: http : //jsfiddle.net/W7NTd/1/


由於某些奇怪的原因,更改參數值不起作用,只有創建新的html才對我有用:

$(document).ready(function(){
    $('body').on('click', "button#switch", function() {
        $('object param[name="flashvars"]').attr('value', $('object param[name="flashvars"]').attr('value').replace('ivan', 'liquidwifi'));
        var new_html = $('#wrapper').html();
        $('#wrapper').html(new_html);
    });        
})

我為此添加了一個包裝器。

看到小提琴

您需要先更新參數,然后再更新數據屬性:

$( "object param[name=flashvars]" ).attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");
$( "object").css('display', 'none');
$( "object").attr('data',  "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi").css('display', ''); 

參見http://jsfiddle.net/W7NTd/2/

將此附加到您的代碼中。 這可能會有所幫助。

 $("object param[name=flashvars]").attr("value", $("object").attr("data"));

以下代碼對我有用

$( "object" ).replaceWith('<object data="' + newURL + '"></object>');

原因是您沒有更改參數值

在更改對象屬性時,還要更改參數flashvars值

演示在這里: http : //jsfiddle.net/cYxy7/3/

$(document).ready(function () {
    $('body').on('click', "button#switch", function () {
        alert("The object's 'data' attritube is currently: " + $("object").attr("data"));
        $("object").attr("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi");
        $("param[name='flashvars']").attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");
        alert("The object's 'data' attribute is now: " + $("object").attr("data"));
    });
})

干杯!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM