2

私はuIプログラミングが初めてです。アプリケーションで Jqgrid を使用しています。フォーマッタ オプションを使用して作成された、各行にボタンを表示する 1 つの列があります。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;
       }

ここで2つの問題に直面しています。

1) フォーマッタ オプションを使用して追加された Department Name 列のボタンに Jquery テーマが適用されません。このボタンだけを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

firebug から取得。誰もがこれらの問題に直面したことがありますか。私を助けてください。また、違いを理解するのを手伝ってください

        var element = '<div> ....'

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

2番目はjquery構文であることは知っていますが、正確な違いは何ですか。どうもありがとう。

4

2 に答える 2

0

ここですべてのベースをカバーできるかどうかはわかりません...

1) スタイルを追加するための jQuery UI メソッドを思い出せません。しかし、とにかく私はこれを決してしません。要素の一部にする必要があるクラスを見つけて、ボタンの作成中に追加します。したがって、ボタンを作成してから .button() を呼び出す代わりに"<button class="someclass otherclass">Button</button>"、jQuery テーマに必要なクラスで満たされているようなものを作成します。

2) とにかくインラインで onclick を使用するべきではありませんが、それは別の議論です。それまでの間、それは非常に単純です。最初のものは文字列であり、最終的には JavaScript メソッド (jQuery では のようなもの.append()) によって新しいノードを DOM にアタッチするために使用される可能性があります。2 番目のものはノード オブジェクトを作成しますが、それでも DOM にアタッチする必要があります... のようなものです.append()。;-) 内部では違いがあります。しかし、ほとんどの場合、それはあまり重要ではありません。

于 2012-08-31T18:23:12.273 に答える
0

これらのクラスを追加

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

ホバーで追加しui-state-highlightます。

于 2012-08-31T18:19:30.760 に答える