0

我正在尝试制作一个按钮栏来更改已定义对象的属性但无法使其正常工作。请参阅下面的代码片段(不包括 CSS):

按钮条码

<ul id="filtering-nav">
<li class="work button active" value="../servlet/Web">Work</li>
<li class="like button"  value="../servlet/Home">home</li></ul>

脚本代码

<script> var buttons = $("#filtering-nav .button"); buttons.click(function(){
buttons.removeClass("active");
$(this).addClass("active");
$( "#alpha100" ).attr("data", $("#filtering-nav .button.selected").val() );});</script>

目标对象代码

<object id='alpha100' type="text/html" data=""  width="100%" height="100%"></object>

有谁知道我在这里做错了什么?

我可以得到类似于使用下拉框的东西。

4

2 回答 2

0

你似乎想要.button.active而不是.button.selected.

但是你可以让你的代码更简单:

var buttons = $("#filtering-nav .button");
buttons.click(function(){
   buttons.removeClass("active");
   $(this).addClass("active");
   $("#alpha100" ).attr("data", $(this).attr('value'));
});

请注意,今天的自定义属性应命名为data-something. data并且value不是好的属性名称。使用标准的自定义数据属性,您将使用特定的数据函数:

   $("#alpha100" ).data("something", $(this).data('otherthing'));
于 2013-03-26T14:53:19.827 回答
0

value当您尝试使用li标签时,我不知道幕后发生了什么。这可能是问题的一部分,所以我建议您使用这种方法(使用data属性)

HTML

<ul id="filtering-nav">
   <li class="work button active" data-value="../servlet/Web">Work</li>
   <li class="like button"  data-value="../servlet/Home">home</li>
</ul>

JS

<script> 
    var buttons = $("#filtering-nav .button"); buttons.click(function(){
    buttons.removeClass("active");
    $(this).addClass("active");
    $( "#alpha100" ).attr("data", $("#filtering-nav .button.selected").data('value') );});
</script>

别的东西(正如dystroy指出的那样):你的意思是.button.active不是.button.selected

于 2013-03-26T14:56:50.220 回答