我正在尝试在span标签上应用onclick事件,但收到以下错误。我想我做对了。
VM409 twitter-message-73266664:892 Uncaught ReferenceError: clip is not
defined
at HTMLSpanElement.onclick
span标签
<td><span id="bootstrap_css_link" class="badge btn btn-success bootstrap_css_link" onclick="clip(this.id)" data-clipboard-target="#clipboardExample1">copy</span></td>
剪辑方法
$( document ).ready(function() {
function clip(clip_id){
var clipboard = new ClipboardJS(clip_id);
clipboard.on('success', function(e) {
setTooltip(e.trigger, 'Copied!');
hideTooltip(e.trigger);
//alert("hello");
});
}
});
答案 0 :(得分:1)
由于clip
在函数内部,因此无法从函数外部访问。删除document.ready
:
function clip(clip_id) {
var clipboard = new ClipboardJS(clip_id);
clipboard.on('success', function(e) {
setTooltip(e.trigger, 'Copied!');
hideTooltip(e.trigger);
});
}
答案 1 :(得分:0)
@Component
public class ApiGlobalFilter implements GlobalFilter, Ordered {
@Override
public int getOrder() {
return 0;
}
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
if (HttpMethod.POST.toString().equals(exchange.getRequest().getMethodValue())){
/*// exchange.getRequest().get
String bodyStr = resolveBodyFromRequest(serverHttpRequest);*/
ServerHttpRequest serverHttpRequest = exchange.getRequest();
Flux<DataBuffer> body = serverHttpRequest.getBody();
// System.out.println(body.toString());
/* AtomicReference<String> bodyRef = new AtomicReference<>();
serverHttpRequest.getBody().subscribe(dataBuffer -> {
CharBuffer charBuffer = StandardCharsets.UTF_8.decode(dataBuffer.asByteBuffer());
DataBufferUtils.release(dataBuffer);
bodyRef.set(charBuffer.toString());
});
String bodyStr = bodyRef.get();*/
AtomicReference<String> bodyRef = new AtomicReference<>();
body.subscribe(buffer -> {
System.out.println("start111111111");
byte[] bytes = new byte[buffer.readableByteCount()];
buffer.read(bytes);
DataBufferUtils.release(buffer);
try {
String bodyString = new String(bytes, "utf-8");
bodyRef.set(bodyString);
System.out.println(bodyString);
System.out.println("finish11111111");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
});
String bodyStr = bodyRef.get();
System.out.println(bodyStr);
URI uri = serverHttpRequest.getURI();
ServerHttpRequest request = serverHttpRequest.mutate().uri(uri).build();
DataBuffer bodyDataBuffer = stringBuffer(bodyStr);
Flux<DataBuffer> bodyFlux = Flux.just(bodyDataBuffer);
request = new ServerHttpRequestDecorator(request) {
@Override
public Flux<DataBuffer> getBody() {
return bodyFlux;
}
};
return chain.filter(exchange.mutate().request(request).build());
// return chain.filter(exchange);
}
String token = exchange.getRequest().getQueryParams().getFirst("token");
if (StringUtils.isBlank(token)) {
ServerHttpResponse response = exchange.getResponse();
Map<String,Object> message = new HashMap<>();
message.put("status", -1);
message.put("data", "fail");
byte[] bits = message.toString().getBytes(StandardCharsets.UTF_8);
DataBuffer buffer = response.bufferFactory().wrap(bits);
response.setStatusCode(HttpStatus.UNAUTHORIZED);
response.getHeaders().add("Content-Type", "text/json;charset=UTF-8");
return response.writeWith(Mono.just(buffer));
}
return chain.filter(exchange);
}
private String resolveBodyFromRequest(ServerHttpRequest serverHttpRequest) {
Flux<DataBuffer> body = serverHttpRequest.getBody();
AtomicReference<String> bodyRef = new AtomicReference<>();
body.subscribe(buffer -> {
CharBuffer charBuffer = StandardCharsets.UTF_8.decode(buffer.asByteBuffer());
DataBufferUtils.release(buffer);
bodyRef.set(charBuffer.toString());
});
return bodyRef.get();
}
private DataBuffer stringBuffer(String value) {
byte[] bytes = value.getBytes(StandardCharsets.UTF_8);
NettyDataBufferFactory nettyDataBufferFactory = new NettyDataBufferFactory(ByteBufAllocator.DEFAULT);
DataBuffer buffer = nettyDataBufferFactory.allocateBuffer(bytes.length);
buffer.write(bytes);
return buffer;
}
@Bean
public HiddenHttpMethodFilter hiddenHttpMethodFilter() {
return new HiddenHttpMethodFilter() {
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
return chain.filter(exchange);
}
};
}
}
函数在全局范围内不可用,因为它是在另一个函数中定义的。您需要找到元素并通过JavaScript附加事件处理程序。
clip
$(document).ready(function() {
$("#bootstrap_css_link").on("click", clip);
function clip(event) {
console.log(event.target.id)
}
});
答案 2 :(得分:0)
import os,shutil
dict_extension = {
'text_extension':('.txt'),
'audio_extension':('.mp3','.aac','.ogg','.wma','.m4a','.wav','.flac'),
'video_extension':('.mp4','.mkv','.flv','.mpeg'),
# 'python_extension':('.py'),
'excel_extension':('.csv','.xls'),
'website_extension':('.html','.css'),
'image_extension':('.jpg'),
}
#this function will return list of doc of particular extension
def file_list(folder_path,file_extension):
return[file for file in os.listdir(folder_path) for extension in file_extension if file.endswith(extension)]
folderpath=input('Enter file path : ') #lets input folder path
for file_type,file_extension in dict_extension.items(): #to read dictionary
folder_name=file_type.split('_')[0]+'_files'
folder_newpath=os.path.join(folderpath,folder_name) #get new folder path
if os.path.exists(folder_newpath):
pass
elif file_list(folderpath,file_extension):
os.mkdir(folder_newpath)
else:
pass
for item in file_list(folderpath,file_extension): #to get list of file of specfic type by calling function
item_old_path = os.path.join(folderpath,item)
item_new_path = os.path.join(folder_newpath,item)
shutil.move(item_old_path,item_new_path)
答案 3 :(得分:0)
您必须在$(document)之外定义clip函数。准备好,因此您只需要这样定义函数即可
function clip(clip_id){
var clipboard = new ClipboardJS(clip_id);
clipboard.on('success', function(e) {
setTooltip(e.trigger, 'Copied!');
hideTooltip(e.trigger);
//alert("hello");
});
}