使用jquery ui向按钮添加图标时出现问题

时间:2011-09-13 15:06:15

标签: jquery

我的所有其他按钮显示格式正确,除了createSave类按钮之外,在after()函数字符串中附加了图标。有谁知道怎么了?

Jquery的:

        $(".save,.createSave").button({
            icons: {
                primary: "ui-icon-disk"
            }
        });

        $('#newJudgeLink').click(function(){
            $(this).hide();
            $('#tableJudges tr:first').after('<tr class="altr" id="newCreateRow"><td><button class="createSave">Save</button></td><td><input type="text" id ="createJudgeName" value="Last Name"/></td><td><?php $x = getSections(); echo '<select id="createJudgeSection">';   foreach($x as $y){ echo "<option>$y</option>"; } echo "</select></td><td>Active</td></tr>"; ?>');
});

3 个答案:

答案 0 :(得分:1)

在您实际创建按钮之前,您似乎正在调用按钮功能。试着这样做:

$('#newJudgeLink').click(function(){
  $(this).hide();
  $('#tableJudges tr:first').after('<tr class="altr" id="newCreateRow"><td><button class="createSave">Save</button></td><td><input type="text" id ="createJudgeName" value="Last Name"/></td><td><?php $x = getSections(); echo '<select id="createJudgeSection">';   foreach($x as $y){ echo "<option>$y</option>"; } echo "</select></td><td>Active</td></tr>"; ?>');
  $(".createSave").button({
        icons: {
            primary: "ui-icon-disk"
        }
    });
});

答案 1 :(得分:1)

看起来你想要在加载时对整个文档运行jQuery UI插件,然后再对任何新创建的按钮再次运行它。在这种情况下,最简单的方法是创建一个允许您传入上下文的可重用函数。如,

function makeUIButtons(context) {
    $(context).find('.save, .createSave').button({
        icons: {
            primary: "ui-icon-disk"
        }
    });
}

// update existing buttons on load
makeUIButtons(document);

$('#newJudgeLink').click(function(){
    $(this).hide();
    var $newRow = $('<tr class="altr" id="newCreateRow"><td><button class="createSave">Save</button></td><td><input type="text" id ="createJudgeName" value="Last Name"/></td><td><?php $x = getSections(); echo '<select id="createJudgeSection">';   foreach($x as $y){ echo "<option>$y</option>"; } echo "</select></td><td>Active</td></tr>"; ?>');
    // update buttons in our new row
    makeUIButtons($newRow[0]);
    $newRow.insertAfter('#tableJudges tr:first');
});

答案 2 :(得分:1)

有点难以说再多一点。你有一个我们可以参考的链接吗?

我假设你的css样式表(不是直接在线?:))具有为button.createSave指定的样式。如果我打算猜测我会打赌它的css选择器冲突(两种不同的css样式相互冲突)。但是有了检查和检查的网址,我就能为你提供更好的答案。

希望这有帮助

PS有疑问的时候......用firebug进行检查(一个firefox调试扩展,也可用于chrome,safari也可能有类似的东西,IE有开发人员工具栏,它有效,但在经典的微软时尚有点不稳定)< / p>

-Matt