我的目标是“ init”,“ init -site = test”,init的两个版本以及命令行上接受的独立“ debug”命令,并将剩下的任何内容都视为文件名。 / p>
实际上发生的是,由于某种原因,在“ init -site = test”的情况下,“-site = test”也被接受为文件名。我该如何阻止这种情况发生?
/*-----------------------------------------------------------------------------------*/
/*------------------- code to add document-level event delegation -------------------*/
/*-----------------------------------------------------------------------------------*/
// create an array for storing events
var documentLevelEvents = [];
// add a new delegated document-level listener function to all objects of type Element
Element.prototype.addDocumentLevelEventListener = function (eventType, fn) {
// get a count of registered document-level event listeners for a given event type
function documentLevelEventListenerCount(eventType) {
var eventCount = documentLevelEvents.filter(e => {
return e.eventType === eventType;
}).length;
return eventCount;
}
// filter the documentLevelEvents array and return only those that match the
// specified element and eventType
function getDocumentLevelEvents(element, eventType) {
var events = documentLevelEvents.filter(function (e) {
return e.element === element && e.eventType === eventType;
});
return events;
}
// grab the count of listeners registered for this event type before registering
// the submitted event
var listenerExists = documentLevelEventListenerCount(eventType);
// register the new document-level event listener
documentLevelEvents.push({
eventType: eventType,
element: this,
fn: fn
});
// if the document object does not already have a listener for this event type,
// create a new event listener on the document object.
if (!listenerExists) {
document.addEventListener(eventType, function (evt) {
var target = evt.target;
// get an array of all registered events matching the target element
// and the triggered event type
var events = getDocumentLevelEvents(target, eventType);
// iterate through the array and run the registered listener functions
for (var i = 0; i < events.length; ++i) {
event = events[i];
event.fn(evt);
}
});
}
};
/*-----------------------------------------------------------------------------------*/
/*---------------------------------- example usage ----------------------------------*/
/*-----------------------------------------------------------------------------------*/
element = document.getElementById('#element-id');
element.addDocumentLevelEventListener('input', ()=>{console.log('innerText changed!')})
// anytime the text of the element changes on account of input, a notice will be logged
// to console.
答案 0 :(得分:3)
使用T
包不是很方便。来自doc:
标记解析在第一个非标志参数(“-”是非标志参数)之前或终止符“-”之后停止。
您将必须手动进行:
解析后,标记后面的参数可以用作切片flag.Args()或单独用作flag.Arg(i)。
或者您可以使用其他软件包。