0

我有一个页面上有几个标签。当用户在文本输入中输入一个值然后混合一个按钮时,我想替换特定选项卡上的内容。我有这段代码(省略了一些细节以仅显示相关部分/解释我在做什么)。

第一次效果很好——标签加载得很好;但是,随后单击按钮(在更改文本输入值之后)没有效果。为什么不?我必须怎么做才能强制标签“刷新”?可能与桌面环境中的“Application.ProcessMessages()”等价的东西?

这是相关的html:

<input type="text" name="inputText" id="inputText" placeholder="Enter something" autofocus style="display: inline-block;" />
<input type="button" name="inputButton" id="inputButton" value="Find" style="display: inline-block;" />

...和 ​​jQuery:

<script>
    $.support.cors = true; 
    $(document).ready(function () {
        $("#duckbilledPlatypusTabs").tabs({
        });

        $("#inputButton").click(function (e) {
                var searchTerm = "";
                if ($("#inputText").val() !== "") {
                    searchTerm = $("#inputText").val();
                } else {
                    searchTerm = "jQuery";
                }
                //alert(searchTerm);
                $("duckbilledPlatypusTab-YouTube").html("");

                var urlYouTube = "http://gdata.youtube.com/feeds/api/videos?vq=" + searchTerm + "&max-results=5&orderby=published&alt=json";

                $.getJSON(urlYouTube, function (data) {
                    // Loop through each feed entry
                    $.each(data.feed.entry, function(i, item) {
                        // Get the URL for the video
                        var url = item.link[0].href;
                        // Get the title of the video
                        var title = item.title.$t;
                        // Get the first 10 characters of date video was published or: YYYY-MM-DD
                        var datepublished = item.published.$t.substring(0, 10);
                        // Get the author name
                        var author = item.author[0].name.$t;
                        // Get the thumbnail image for the video
                        var thumbnailURL = item.media$group.media$thumbnail[0].url;
                        // Construct the display for the video
                        var text =
                            "<br><a href='" + url + "'>" + title + "</a><br>" +
                                "Published: " + datepublished + " by " + author + "<br><br>" +
                                "<img src='" + thumbnailURL + "'><br>";
                        // Append the text string to the div for display
                        $("#duckbilledPlatypusTab-YouTube").append(text);
                    });
                });
        });       
    });
</script>
4

1 回答 1

1

你错过了#一个$("duckbilledPlatypusTab-YouTube").html("");。实际上,您的代码未能清除“YouTube”选项卡,因此所有新视频都附加在容器的末尾。
更正它$("#duckbilledPlatypusTab-YouTube").html("");应该可以解决您的问题。

另请参阅这个简短的演示
(基本上,我所做的只是获取您的代码并添加此缺失#的 .)

于 2013-05-18T20:10:06.033 回答