将jquery样式应用于动态创建的按钮

时间:2012-08-31 18:14:44

标签: jquery jquery-ui jqgrid

我是uI编程的新手。我在我的应用程序中使用Jqgrid。我有一列显示每行中的按钮,使用formatter选项创建。在格式化程序选项中描述的函数中,我绑定了按钮的单击事件。以下是代码

        { label: 'Depatment Name', name: 'deptName', width: 100,
              formatter:actionButtonFormatter
        },

      function actionButtonFormatter ( cellvalue, options, rowObject )
       {
          var element ='<div id="deptNmBtn"><button onClick=getDepartMentNm("' + rowObject.empName+'")> <span>Add</span></button></div>';
          $("button, input:submit, input:button", this).button();
          return element;
       }

我在这里遇到两个问题。

1)Jquery主题未应用于使用formatter选项添加的Department Name列中的按钮。我只希望这个按钮应用Jquery主题,所以我试过

         $("button, input:submit, input:button", this).button();
         $("button, input:submit, input:button", jqgrid_table_id).button();  
         $("button, input:submit, input:button", deptNmBtn).button(); //div id

但是没有一个工作,列中的按钮没有应用Jquery主题。

2)在onclick中,我传递了employeeName的参数,该参数是行的值。如果员工姓名不包含任何空格,则效果很好。如果员工姓名包含空格,则会抛出我

        SyntaxError: unterminated string literal
从萤火虫中取出。有没有人遇到过这些问题。请帮帮我。还请帮助理解

之间的区别
        var element = '<div> ....'

        var element = $('<div> ....')

我知道第二个是jquery语法,但确切的区别是什么。非常感谢。

2 个答案:

答案 0 :(得分:0)

添加这些类

ui-button ui-widget ui-state-default ui-corner-all

在悬停时添加ui-state-highlight

答案 1 :(得分:0)

不确定我能覆盖所有基地......

1)我不记得用于添加样式的jQuery UI方法。但无论如何我从来没有这样做过。找出哪些类需要成为元素的一部分,并在创建按钮期间添加它们。因此,不是创建一个按钮,然后在其上调用.button(),而是将其设为"<button class="someclass otherclass">Button</button>",其中的类充满了jQuery主题所需的类。

2)无论如何你可能不应该使用onclick内联,但这是另一个讨论。与此同时,它非常简单:第一个是一个字符串,最终可能会被某些JavaScript方法(在jQuery中,类似.append())用于将新节点附加到DOM。第二个创建节点对象,但它仍然需要附加到DOM ... .append()之类的东西。 ;-)引擎盖下,有区别。但是对于大多数用途而言,它并不重要。