$arr = get_class_methods(__CLASS__);
print_r($arr);


wbkuo 發表在 痞客邦 留言(0) 人氣()

event.currentTarget.id


wbkuo 發表在 痞客邦 留言(0) 人氣()

請開啟 example/etc/jetty.xml
並尋找 <Call name="addConnector"> 區塊,應該會像底下這樣

    <Call name="addConnector">
      <Arg>
          <New class="org.eclipse.jetty.server.bio.SocketConnector">
            <Call class="java.lang.System" name="setProperty"> <Arg>log4j.configuration</Arg> <Arg>etc/log4j.properties</Arg> </Call>
            <Set name="host"><SystemProperty name="jetty.host" /></Set>
            <Set name="port"><SystemProperty name="jetty.port" default="8983"/></Set>
            <Set name="maxIdleTime">50000</Set>
            <Set name="lowResourceMaxIdleTime">1500</Set>
            <Set name="statsOn">false</Set>
          </New>
      </Arg>
    </Call>

 
請把第 6 行的 port 8983 改成你要的 port 就可以了

wbkuo 發表在 痞客邦 留言(0) 人氣()

請參考:http://linux.vbird.org/linux_server/0360apache.php#www_basic_basic
--
使用情境
假設我要在 http://localhost/phpMyAdmin 裡放 phpMyAdmin 的服務
但 phpMyAdmin 目錄我想不放在我網站的目錄,那麼可以這樣設定

wbkuo 發表在 痞客邦 留言(0) 人氣()

在這簡單做一個說明方塊的範例,點擊時會在該物件下面顯示方塊,點別的地方會消失

<html>
<head>
<title>jqury plugin</title>
<style>
#helpBox 
{
    position      : absolute; 
    padding       : 5px;  
    border-radius : 5px;
    border        : 1px solid #ccc; 
    z-index       : 999; 
    background    : #eeF;
}
</style>
<script type="text/javascript" src='jquery.js'></script>
<script>
(function($)
{
    $.fn.helpBox = function (msg) 
    {
        // 指定移除 box 的事件
        var remove_this = function(event){$('#helpBox').remove(); }

        // 只能有一個 helpBox
        remove_this();

        // 加上 box 
        this.append("<div id='helpBox'>" + msg + "</div>");

        // 指定位置
        var position = this.position();
        var size     = this.size();
        var x = position.left;
        var y = position.top + size.height;
        $('#helpBox').css({left:x, top:y});

        // 註冊移除 helpBox 的事件
        $(document).bind('click', remove_this);

        // 讓 jquery 可以繼續串接
        return this;
    };
})(jQuery);


$(function()
{
    $('p, #content').bind('click', function (event) 
    {
        event.stopPropagation();
        $(this).helpBox('Hello World!');
    });
});
</script>
</head>
<body>
<div id='base' style='margin:0 auto; width:600px;'>
    <p>123123</p>
    <p>123123</p>
    <p>123123</p>
    <p>123123</p>
    <div id='content'>在這裡出現吧</div>
</div>
</body>
</html>

 
這裡有幾點要注意的地方

wbkuo 發表在 痞客邦 留言(0) 人氣()

請注意,這只是我個人的筆記,因為還沒有完全研究,所以如果內容有錯誤,請各位指正,謝謝
(比如說 jQuery 有用到 prototype 來定義物件,我這裡就還沒看懂是怎麼處理的)
--

<script>
// 以 jQuery.trim 為例來建立類似 jQuery 的物件定義方式
// 只是類似而以,因為 jQuery 還有使用 prototype 的方式來定義
// 目前還沒有研究

// 以 my_jQuery 及 $$ 來命名
(function(window) 
{
    // private 的屬性及方法
    var Version="0.0001";

    // public
    var my_jQuery =
    {
        // 去除字串前後空白
        trim : function(str) 
        {
            return str.replace(/^\s+/, '').replace(/\s+$/, '');
        },

        // 傳回目前版本
        version :function() 
        {
            return Version;
        }
    };

    // 直接在 window 定義物件(所以不用回傳值)
    window.my_jQuery = window.$$ = my_jQuery;
})(window);
// 這裡使用立即函式來定義 my_jQuery,請注意執行時將 window 當參數傳入
// 所以能直接在 window 下定義 my_jQuery,所以才不需要回傳值
// 也就是這樣,所以才能使用 .noConflict 的方式來放棄對 window.$ 變數的控制

//==================  測試  ==========================
// 看看目前 my_jQuery 的定義
console.log("my_jQuery", my_jQuery);

// 查看 my_jQuery 的版本
console.log("my_jQuery Version: " + $$.version());

// 測試 my_jQuery.trim 
var str = "  123  ";
console.log("原始字串 = '" + str + "'");

str = $$.trim(str);
console.log("trim 後字串 = '" + str + "'");
</script>

 
執行結果:

wbkuo 發表在 痞客邦 留言(0) 人氣()

1. $(id).tmpl(obj) 若 obj 是一個陣列結構,則會自動就同一個 tmplate 產生好幾個元素

這裡有一篇介紹的很清楚
http://stephenwalther.com/archive/2010/11/30/an-introduction-to-jquery-templates


wbkuo 發表在 痞客邦 留言(0) 人氣()

 

<?php
$url = "http://abc.com.tw/?mod=store&func=style_show&SR_NO=AIAE81";
$urls = parse_url($url);
parse_str($urls['query'], $queries);

/* 結果:
    parse_url = Array
    (
        [scheme] => http
        [host] => abc.com.tw
        [path] => /
        [query] => mod=store&func=style_show&SR_NO=AIAE81
    )
*/
echo "<pre>parse_url = " . print_r($urls, TRUE). "</pre>";

/* 結果:
    parse_str = Array
    (
        [mod] => store
        [func] => style_show
        [SR_NO] => AIAE81
    )
*/
echo "<pre>parse_str = " . print_r($queries, TRUE). "</pre>";
?>

 


wbkuo 發表在 痞客邦 留言(0) 人氣()

這裡講的是類似 Class 的宣告方式,是因為 JavaScript 並沒有真的 Class,而是利用 function 來宣告
和一般的 Class 一樣要使用 new 來產生一個實體,以下是範例說明
--

<script src='jquery.js'></script>
<script>
// 以下範例為組合目前的網址
var Content = function(param) 
{
    // 宣告變數及預設值
    this.link  = (param.link) ? param.link : '';    // 連結
    this.page  = (param.page) ? param.page : 1;     // 分頁
    this.order = (param.order) ? param.order : '';  // 排序

    // 取得連結
    this.getLink = function() 
    {
        return this.link + '?page=' + this.page + '&order=' + this.order
    };

    // 物件處理,注意物件觸發時 this 會指向觸發事件的元素,所以要另外取得物件的值
    // 導向網址
    this.redirect = function(event)
    {
        // 取得自己
        var _self = (event.data) ? event.data : this;

        // 換頁
        window.location.href = _self.getLink();
    };

    // 綁定按鈕做換頁的動作
    // 注意第二個參數,我把 this 傳進去
    // 不然因為事件觸發的關係, redirect 的 this 會指向 #fmBtn
    $('#fmBtn').bind('click', this, this.redirect);
}

$(function()
{
    // 初始化物件
    var content = new Content(
    {
        link  : 'http://localhost/',
        page  : 2,
        order : 'account'
    });

    // 呼叫物件的方法
    // 結果為: http://localhost/?page=2&order=account
    console.log(content.getLink());
});
</script>
<!-- 
    這裡會去呼叫 content.redirect 去換頁
    請注意呼叫後 content.redirect 裡的 this 會指向 #fmBtn
 -->
<input id=fmBtn type='button' value='按我換頁'>

 --
但是上面的範例裡,因為 getLink 及 redirect 是直接定義的,所以每一個 new 出來的實體(instance)都會有一份

wbkuo 發表在 痞客邦 留言(0) 人氣()

最近開始在研究 JavaScript 的物件導向寫法,發現 JavaScript 實在是太彈性了
很多用法很難以理解,不過卻很好用,看來不做點筆記,會完全記不起來,以下會寫好幾篇來記錄目前研究的心得
--

物件導向寫法的筆記 (一) 直接宣告物件

wbkuo 發表在 痞客邦 留言(0) 人氣()